[英]Converting unmanaged C++ code from 32 bit to 64 bit
I have an unmanaged C++ 32 bit application that produces a dll. 我有一个产生dll的非托管C ++ 32位应用程序。 Now, I want to build it for 64 bit system.
现在,我想为64位系统构建它。 My development system is 32 bit.
我的开发系统是32位。 It uses oledb.lib activeds.lib adsiid.lib ws2_32.lib libraries to build the dll.
它使用oledb.lib activeds.lib adsiid.lib ws2_32.lib库来构建dll。 What I have done so far is : Changed the configuration settings and set the Active solution platform to x64.
到目前为止,我所做的是:更改了配置设置,并将Active Solution Platform设置为x64。 It built the application successfully.
它成功构建了应用程序。 But I could not register the dll on a 64 bit machine.
但是我无法在64位计算机上注册dll。 While I tried to do so, I got the following error:
当我尝试这样做时,出现以下错误:
Unable to load DLL C:\\Windows\\System32\\KBTicketExperience.dll 无法加载DLL C:\\ Windows \\ System32 \\ KBTicketExperience.dll
Process Name: dllhost.exe 进程名称:dllhost.exe
Comsvcs.dll file version: ENU 2001.12.8530.16385 shp during component registration. Comsvcs.dll文件版本:组件注册期间的ENU 2001.12.8530.16385 shp。 Unable to validate DLL entry points.
无法验证DLL入口点。
Would you please tell me how to get rid of this problem? 您能告诉我如何摆脱这个问题吗? Thanks in advance.
提前致谢。
I recommend creating a new project/workspace to build this DLL that is 64-bit through and through--no 32-bit anything. 我建议创建一个新的项目/工作区来构建此DLL,该DLL始终是64位的,没有32位的东西。 Assuming the DLL that this project works, you can look more closely at the differences between the projects and got from there.
假定该项目可以工作的DLL,您可以更仔细地查看项目之间的区别,并从那里得到。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.