将win32的程序编译为x64,其中win32用到了kernel32.dll这样的dll,请问在x64位中可以继续使用吗?

win32中可能还有其他一些dll,比如netapi32.dll之类的,怎么判断这个dll可不可以在64位下使用呢?

kernel32.dll, user32.dll, netapi32.dll 等库在 64 位 windows 系统、64 位应用程序中依然可以使用,这是因为针对 32 位程序和 64 位程序,windows 提供了两个不同的版本,分别位于系统目录 system32 和 syswow64 下面,虽然两个目录下的库文件使用了相同的名字,但实际上是不一样的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-11-10
在64位的操作系统上用vs软件编译的dll默认就是64位。在32位XP上用VC++6.0编译64位的dll,需要安装sdk(最新版本是sdk2003),在开始菜单——sdk——open build environment window——windows server 2003 64-bit build environment——set win svr 2003 x64 build env进入命令行,从命令行调用msdev,将vc选项里的include和lib的第一个默认路径设为sdk目录下64位头文件和库的路径,编译出的dll似乎就是64位的了。这个是从网页上看到的,没实践过。在32位XP上使用vs2010就简单多了,新建一个项目(解决方案),加入代码,设置X64,编译生成即可。追问

我的意思是,代码里面有加载kernel32.dll这种dll,有些资料说微软自己是处理了这些dll的,但是有些又没有,我想知道的是,这种dll到底可以在64位编程中使用不?还有我怎么判断需不需要使用其他dll来替换。