2010-03-24 172 views
1

我有一个非托管C++ 32位应用程序,它可以生成一个dll。现在,我想为64位系统构建它。我的开发系统是32位的。它使用oledb.lib activeds.lib adsiid.lib ws2_32.lib库来构建dll。我迄今所做的是:更改配置设置并将Active解决方案平台设置为x64。它成功构建了应用程序。但我无法在64位机器上注册该DLL。当我试图这样做,我得到了以下错误:将非托管C++代码从32位转换为64位

无法加载DLL C:\ WINDOWS \ SYSTEM32 \ KBTicketExperience.dll

进程名称:DLLHOST.EXE

Comsvc​​s.dll文件版本:ENU 2001.12.8530.16385 shp在组件注册期间。无法验证DLL入口点。

请问如何摆脱这个问题?提前致谢。

+6

什么是* KBTicketExperience.dll,它为什么在System32中? – 2010-03-24 10:07:04

+0

您的64位应用程序是否仍在尝试加载32位DLL? 64位应用程序/ DLL无法加载32位DLL,反之亦然。 – AshleysBrain 2010-03-24 13:51:36

+0

我也有这个问题。有没有办法在64位机器上使用32位DLL? – jp2code 2010-06-22 14:37:38

回答

0

我建议创建一个新的项目/工作区来构建这个64位通过和通过 - 没有32位任何东西的DLL。假设这个项目工作的DLL,你可以更仔细地看看项目之间的差异,并从那里得到。