HOWTO:获取一些“未包含”的内容使用VisualC ++编译器Tookit 2003时的东西 [英] HOWTO: get some of the "not included" stuff when using the VisualC++ Compiler Tookit 2003

查看:67
本文介绍了HOWTO:获取一些“未包含”的内容使用VisualC ++编译器Tookit 2003时的东西的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

首先,要获取msvcrt.lib,请安装.NET framework SDK。包含的版本为

msvcrt.lib与Visual Studio

..NET 2003完全相同。

有一些其他可能有用的东西(例如调试版本的msvcrt.lib的
)但msvcrt.lib是最有用的东西。


其次,安装最新版本的Microsoft Platform SDK。

64位编译器将提供undname.exe,nmake.exe,

lib.exe,cvtres.exe,dumpbin.exe和editbin.exe的版本(至少来自我的

粗略检查)似乎是可用的。

来自Microsoft SDK \ Bin的其他东西(例如midl.exe,mktyplib.exe。rc.exe,

mc.exe和因此,它也可用作Visual Studio .NET 2003中包含的那些相同文件的替代品。

此外,包含的64位文件也可以用来代替。用于MFC和ATL的代码也可能在

32位窗口上有用。


另外,如果你想要安装DirectX SDK和DirectX Media SDK使用这些技术开发




当然,这不会为你提供所有的东西Visual C ++ .NET 2003

会为你提供。

最值得注意的是你不会从lib文件夹中获得一些* .obj文件

(即chkstk.obj,nochkclr.obj,thrownew.obj)

binmode.c附带平台SDK中的IA64 CRT源代码,以及

commode.c,fp10.c,newmode.c,setargv.c和wsetargv .c,编译这些文件

你将拥有匹配的CRT obj文件的可用版本。

nochkclr.c中有一条评论说它只用于你不用喜欢CRT。

我不知道哪里可以获得chkstk.obj,thrownew.obj或

nochkclr.obj的代码(或者即使这些obj文件实际上非常有用)。


你也没有msvcrprt.lib(这意味着使用/ MD for C ++

应用程序有点困难:)。

这个:
http://users.tpg.com.au/adsloptd/ msvcprt.def

是使用msvcp71.dll上的dumpbin / exports创建的.DEF文件。

当转换为带有lib / DEF的.LIB文件时: msvcprt.def,它将生成

一个应该可用的msvcp71.dll导入库。 (我没有为msvcp71d.dll做一个

,因为msvcp71d.dll不能自由地从MS下载
,不像msvcp71.dll那样容易获得)


但是,除了作为导入库之外,msvcprt.lib还包含

3 obj文件,nothrow.cpp,newop_s.cpp和newaop_s.cpp。

我不知道你在哪里可以得到nothrow.cpp,newop_s.cpp或newaop_s.cpp(我也不知道它们是否重要)。 SDK CRT附带了

newop_s.cpp和一些名为newop2_s.cpp的东西,但是我不知道是否有任何使用Visual C ++编译器Tookit 2003和

msvcr71.dll / msvcp71.dll。


当然,如果你可以从Visual C ++安装中获取文件(例如

vcspawn.exe,vcprojectengine.dll和vcprojectui.dll)你可以做更多(比如

让vcbuild.exe工作),这个列表只包含你可以得到的东西

免费:)


希望有关如何使用Visual C ++编译器执行更多操作的信息

Tookit 2003对某人有用。


另外,IANAL所以我无法确定是否允许使用上述各种物品的许可协议

允许使用

Visual C ++编译器Tookit 2003并让我知道要添加到

这个HOWTO或任何反馈等的任何内容。

解决方案

尝试使用带有32位编译器的平台附带的64位版本的ATL和MFC将无法正常工作。


Ronald Laeremans

Visual C ++团队


" Jonathan Wilson" <乔**** @ tpgi.com.au>在消息中写道

新闻:uw ************* @ TK2MSFTNGP09.phx.gbl ...

首先,获取msvcrt。 lib,安装.NET framework SDK。其中包含的msvcrt.lib版本与Visual .NET Studio 2003中的版本完全相同。
还有一些其他可能有用的东西(例如调试版本
of msvcrt.lib)但msvcrt.lib是最有用的东西。

其次,安装最新版本的Microsoft Platform SDK。
64位。编译器将提供undname.exe,nmake.exe,
lib.exe,cvtres.exe,dumpbin.exe和editbin.exe的版本(至少从我的粗略检查中)似乎是可用的。
来自Microsoft SDK \ Bin的其他内容(例如midl.exe,mktyplib.exe。rc.exe,
mc.exe等)也可用作包含在Visual Studio .NET 2003中。
此外,包含的64位包含在内。 MFC和ATL的代码也可能在32位窗口上有用。

如果你想使用那些开发
,还要安装DirectX SDK和DirectX Media SDK。技术。

当然,这不会为您提供Visual C ++ .NET 2003为您提供的所有东西。
最值得注意的是,您不会拥有一些* .obj文件来自lib文件夹
(即chkstk.obj,nochkclr.obj,thrownew.obj)
binmode.c在平台SDK中附带了IA64 CRT源代码,
commode.c也是如此。 ,fp10.c,newmode.c,setargv.c和wsetargv.c,编译这些
文件,你将获得匹配的CRT obj文件的可用版本。
nochkclr.c中有一条评论说明它只用于你不喜欢的CRT。
我不知道哪里可以获得chkstk.obj,thrownew.obj或
nochkclr.obj的代码(或者即使那些obj文件实际上非常有用。

而且你也没有msvcrprt.lib(这意味着使用/ MD for C + +
应用程序有点困难:)。
这:
http://users.tpg.com.au/adsloptd/msvcprt.def
是在msvcp71.dll上使用dumpbin / exports创建的.DEF文件。
当使用lib /DEF:msvcprt.def转换为.LIB文件时,它将生成一个应该可用的msvcp71.dll导入库。 (我没有为msvcp71d.dll做一个,因为msvcp71d.dll没有任何可以从MS下载的东西,不像msvcp71.dll这很容易搞定)

然而,除了是一个导入库,msvcprt.lib还包含
3个obj文件,nothrow.cpp,newop_s.cpp和newaop_s.cpp。
我不知道你在哪里可以得到nothrow.cpp,newop_s .cpp或newaop_s.cpp
(我也不知道它们是否重要)。 SDK CRT附带了
newop_s.cpp和一些名为newop2_s.cpp的东西,但我不知道这些是否与Visual C ++编译器Tookit 2003和msvcr71.dll /有任何用处msvcp71.dll。

当然,如果你可以从Visual C ++安装中获取文件(例如
vcspawn.exe,vcprojectengine.dll和vcprojectui.dll),你可以做更多的事情。 />(比如让vcbuild.exe工作),这个列表只包含你可以免费获得的东西:)

希望这个有关如何使用Visual C ++编译器做更多信息的信息
Tookit 2003对某人有用。

此外,IANAL所以我无法确定是否允许使用上述各种项目的许可协议允许他们使用
Visual C ++编译器Tookit 2003并让我知道要添加到这个HOWTO或任何反馈等的任何内容。



Microsoft SDK \ src \ mfc下的东西似乎对我编译正常使用

32位编译器(实际上,在olecall.cpp中似乎有一个#ifdef _X86_块与X86

内联ASM)


因此它编译(并且可以正常工作)。

在IA32上编译(和使用它)是否合法是另一个问题

一共(IANAL所以我不会去那里)但它可以完成。


我已经回答了几个客户关于各种问题的问题他们试图这样做时遇到了
。只编译标题可能会有效,但是当你使用很大一部分功能启动

时,你极有可能遇到各种各样的问题。


Ronald


" Jonathan Wilson" <乔**** @ tpgi.com.au>在留言中写道

新闻:%2 **************** @ TK2MSFTNGP09.phx.gbl ...

这些东西在Microsoft SDK \ src \ mfc下似乎可以使用32位编译器为我编译好(事实上,在olecall.cpp中似乎有一个#ifdef _X86_块与
X86内联ASM )

所以它编译(和probobly工作)。
是否在IA32上编译(和使用它)是合法的另一个问题
完全(IANAL所以我不会去那里)但它可以完成。



Firstly, to get msvcrt.lib, install the .NET framework SDK. The version of
msvcrt.lib included there is the exact same one as comes with Visual Studio
..NET 2003.
There are some other things that might be usefull (e.g. the debug version
of msvcrt.lib) but msvcrt.lib is the most usefull thing.

Secondly, install the latest version of the Microsoft Platform SDK.
The "64-bit" compiler will provide versions of undname.exe, nmake.exe,
lib.exe, cvtres.exe, dumpbin.exe and editbin.exe that (at least from my
cursory inspection) appear to be useable.
Other stuff from Microsoft SDK\Bin (e.g. midl.exe, mktyplib.exe. rc.exe,
mc.exe and so on) is also usable as a substitute for those same files as
included with Visual Studio .NET 2003.
Also, the included "64-bit" code for MFC and ATL may be of some use on
32-bit windows too.

Also, install the DirectX SDK and DirectX Media SDK if you want to develop
using those technologies.

Naturally, this wont provide you with all the stuff visual C++ .NET 2003
would provide you with.
Most notably you wont have some of the *.obj files from the lib folder
(i.e. chkstk.obj, nochkclr.obj, thrownew.obj)
binmode.c comes with the IA64 CRT source code in the platform SDK, as does
commode.c, fp10.c, newmode.c, setargv.c and wsetargv.c, compile these files
and you will have usable versions of the matching CRT obj files.
nochkclr.c has a comment in it stating its only used if you dont like with
the CRT.
I do not know where one would get code for chkstk.obj, thrownew.obj or
nochkclr.obj (or even if those obj files are actually usefull for much).

And you also wont have msvcrprt.lib (which means that using /MD for C++
apps is kinda difficult :).
This:
http://users.tpg.com.au/adsloptd/msvcprt.def
is a .DEF file created using dumpbin /exports on msvcp71.dll.
When converted into a .LIB file with lib /DEF:msvcprt.def, it will generate
an import library for msvcp71.dll that should be usable. (I didnt do one
for msvcp71d.dll because msvcp71d.dll is not in anything freely
downloadable from MS, unlike msvcp71.dll which is easy enough to get)

However, in addition to being an import library, msvcprt.lib also contains
3 obj files, nothrow.cpp, newop_s.cpp and newaop_s.cpp.
I dont know where you could get nothrow.cpp, newop_s.cpp or newaop_s.cpp (I
also dont know if they are important or not). The SDK CRT comes with
newop_s.cpp and something called newop2_s.cpp but I dont know if either of
those is of any use with the Visual C++ Compiler Tookit 2003 and
msvcr71.dll/msvcp71.dll.

Of course, if you can get files from a visual C++ install (such as
vcspawn.exe, vcprojectengine.dll and vcprojectui.dll) you can do more (like
getting vcbuild.exe to work), this list only covers stuff that you can get
for free :)

Hopefully this information on how to do more with the Visual C++ Compiler
Tookit 2003 is usefull to someone.

Also, IANAL so I cant say for sure if the licence aggreements given for the
use of the various items mentioned above permits their useage with the
Visual C++ Compiler Tookit 2003 and do let me know of anything to add to
this HOWTO or any feedback etc.

解决方案

Trying to use the 64-bit versions of ATL and MFC that ship with the Platform
SDK with a 32-bit compiler will simply not work.

Ronald Laeremans
Visual C++ team

"Jonathan Wilson" <jo****@tpgi.com.au> wrote in message
news:uw*************@TK2MSFTNGP09.phx.gbl...

Firstly, to get msvcrt.lib, install the .NET framework SDK. The version of
msvcrt.lib included there is the exact same one as comes with Visual
Studio .NET 2003.
There are some other things that might be usefull (e.g. the debug version
of msvcrt.lib) but msvcrt.lib is the most usefull thing.

Secondly, install the latest version of the Microsoft Platform SDK.
The "64-bit" compiler will provide versions of undname.exe, nmake.exe,
lib.exe, cvtres.exe, dumpbin.exe and editbin.exe that (at least from my
cursory inspection) appear to be useable.
Other stuff from Microsoft SDK\Bin (e.g. midl.exe, mktyplib.exe. rc.exe,
mc.exe and so on) is also usable as a substitute for those same files as
included with Visual Studio .NET 2003.
Also, the included "64-bit" code for MFC and ATL may be of some use on
32-bit windows too.

Also, install the DirectX SDK and DirectX Media SDK if you want to develop
using those technologies.

Naturally, this wont provide you with all the stuff visual C++ .NET 2003
would provide you with.
Most notably you wont have some of the *.obj files from the lib folder
(i.e. chkstk.obj, nochkclr.obj, thrownew.obj)
binmode.c comes with the IA64 CRT source code in the platform SDK, as does
commode.c, fp10.c, newmode.c, setargv.c and wsetargv.c, compile these
files and you will have usable versions of the matching CRT obj files.
nochkclr.c has a comment in it stating its only used if you dont like with
the CRT.
I do not know where one would get code for chkstk.obj, thrownew.obj or
nochkclr.obj (or even if those obj files are actually usefull for much).

And you also wont have msvcrprt.lib (which means that using /MD for C++
apps is kinda difficult :).
This:
http://users.tpg.com.au/adsloptd/msvcprt.def
is a .DEF file created using dumpbin /exports on msvcp71.dll.
When converted into a .LIB file with lib /DEF:msvcprt.def, it will
generate an import library for msvcp71.dll that should be usable. (I didnt
do one for msvcp71d.dll because msvcp71d.dll is not in anything freely
downloadable from MS, unlike msvcp71.dll which is easy enough to get)

However, in addition to being an import library, msvcprt.lib also contains
3 obj files, nothrow.cpp, newop_s.cpp and newaop_s.cpp.
I dont know where you could get nothrow.cpp, newop_s.cpp or newaop_s.cpp
(I also dont know if they are important or not). The SDK CRT comes with
newop_s.cpp and something called newop2_s.cpp but I dont know if either of
those is of any use with the Visual C++ Compiler Tookit 2003 and
msvcr71.dll/msvcp71.dll.

Of course, if you can get files from a visual C++ install (such as
vcspawn.exe, vcprojectengine.dll and vcprojectui.dll) you can do more
(like getting vcbuild.exe to work), this list only covers stuff that you
can get for free :)

Hopefully this information on how to do more with the Visual C++ Compiler
Tookit 2003 is usefull to someone.

Also, IANAL so I cant say for sure if the licence aggreements given for
the use of the various items mentioned above permits their useage with the
Visual C++ Compiler Tookit 2003 and do let me know of anything to add to
this HOWTO or any feedback etc.



the stuff under Microsoft SDK\src\mfc seemed to compile fine for me with a
32-bit compiler (in fact, there appears to be a #ifdef _X86_ block with X86
inline ASM in olecall.cpp)

So it compiles (and probobly works).
Whether compiling it (and using it) on IA32 is legal is another issue
altogether (IANAL so I wont go there) but it can be done.


I have answered several customer questions on various issues they
encountered trying to do this. Compiling just the headers might work, but
you are extremely likely to run into all kinds of issues when you start
using a significant part of the functionality.

Ronald

"Jonathan Wilson" <jo****@tpgi.com.au> wrote in message
news:%2****************@TK2MSFTNGP09.phx.gbl...

the stuff under Microsoft SDK\src\mfc seemed to compile fine for me with a
32-bit compiler (in fact, there appears to be a #ifdef _X86_ block with
X86 inline ASM in olecall.cpp)

So it compiles (and probobly works).
Whether compiling it (and using it) on IA32 is legal is another issue
altogether (IANAL so I wont go there) but it can be done.



这篇关于HOWTO:获取一些“未包含”的内容使用VisualC ++编译器Tookit 2003时的东西的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆