我的编译环境是windows xp和vc 6.0。
现在我有一个c源文件(msgRout.c),def文件(msgRout.def),链接文件(msgRout.link),然后我使用下面的命令得到一个32位的dll:
1.cl / I ../include -c -W3 -Gs- -Z7 -Od -nologo -LD -D_X86_ = 1 -DWIN32 -D_WIN32 -D_MT -D_DLL msgRout.c < / p>
2.lib -out:msgRout.lib -def:msgRout.def -machine:i386
3.link /LIBPATH:../../Lib -nod -nologo -debug:full -dll @ msgRout.link -out:msgRout.dll
但是我得到的dll无法在X64应用程序上加载。它需要一个64位的dll。
所以这是我的问题: 我可以使用vc 6.0获得64位dll吗? 仅使用3个以上的命令,如何获得64位dll?
非常感谢!!!
阿伦
答案 0 :(得分:2)
Visual C ++ 6.0不包含64位编译器/库。您将需要更新版本的Visual C ++或具有64位支持的Windows Platform SDK。最早的是Windows Server 2003 Platform SDK。
安装完成后,cl /?
和link /?
将获得有关如何构建64位应用的信息。
更新:如果你有VS2005,你可以使用x86-amd64交叉编译器(产生64位代码的32位cl.exe
)构建64位二进制文件,或者使用x64编译器(64位cl.exe
)。为此,您需要:
C:\Program Files\Microsoft Visual Studio 8\VC\Vcvarsall.bat x86_amd64
或C:\Program Files\Microsoft Visual Studio 8\VC\Vcvarsall.bat amd64
将其设置为64位版本。一旦你这样做,你应该能够使用与上面相同的命令行(对于cl
你需要定义/ D: X64 = 1或/ D_AMD64_和link
您必须将/machine:x86
更改为/machine:x64
)才能生成64位版本的程序。
以下是一些包含更多信息的链接:
Installing Visual Studio 64-bit Components
HowTo: Enable a 64-Bit Visual C++ Toolset at the Command Line
Use Visual Studio to build 64-bit application
64-bit Applications
Seven Steps of Migrating a Program to a 64-bit System
答案 1 :(得分:0)
你做不到。微软没有时间机器。