2011-06-09 72 views
0

我试图开发一个插件到一个欧特克产品,但它好像我有一个有趣的问题... 当我尝试编译一个64位调试DLL。该软件不会加载它! 但是,当我使用64发布的DLL,32发布和调试DLL的工作。视觉工作室C++:64位调试dll不会工作

感觉就像我丢失了一些简单的设置,但我相比的32和64位的调试配置设置所有的值,但它们是相同的(除了那些将其定义为32或64)。

任何建议它可能是什么?

我使用他们有藏汉,同样的问题的例子的解决方案尝试。 也尝试过不同版本的软件(motionbuilder 2011和2010)。

更新:我现在试着从玛雅2011示例代码构建一个调试64 DLL,看起来像它不会工作,要么。

+0

“不会加载”?你能更好地描述错误吗? – 2011-06-09 14:37:55

+0

该软件不会加载插件 – Tistatos 2011-06-09 14:38:43

+0

是否有可能你错过了专门用于64调试的第三方dll? – 2011-06-09 14:41:59

回答

0

检查您的变量是否在使用前正确初始化。我见过许多程序在Debug版本上工作,但在Release上崩溃,因为我忘了初始化一些东西。

+0

即使我使用他们的示例代码,它仍然无法正常工作,而且我很确定他们不会发布不会编译的示例代码(即使它是autodesk)。 – Tistatos 2011-06-09 14:42:21

+0

似乎答案在于属性页面,c/C++ - >代码生成 - >将运行时库从/ MDd更改为/ MTd帮助。 – Tistatos 2011-06-09 15:52:39

0

你在没有C运行时库,或其他任何依赖库的调试版本的机器上测试?

如果没有帮助,使Loader Snaps,看看它告诉你。

2

我建议你使用GetLastErrorFormatMessage如果LoadLibrary返回null,还要检查EventViewer

我有一个类似的问题 - 32 bit dll not loading in a 64bit environment,它证明是并排错误(无法加载VC调试dll)和切换到发布版本避免了这个问题。