简体   繁体   English

将非托管C ++代码从32位转换为64位

[英]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. Comsvc​​s.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM