无法使用/ OPT:NOREF在.NET中加载C ++ DLL

时间:2012-03-28 10:26:05

标签: c++ .net interop

我试图在VB.NET中调用C ++本机的一些函数,但我有一个奇怪的问题。如果我在发布模式下编译我的C ++ DLL它可以工作,如果我在调试模式下编译它会抛出一个错误,如:

  

无法加载DLL“DllName.dll”:参数不正确。   (HRESULT异常:0x80070057(E_INVALIDARG))

我认为在开始时可能会出现调试DLL中引用的MSVCR100D.dll问题但事实并非如此。

相反,我发现如果我使用选项/OPT:NOREF编译我的C ++ DLL,它就不起作用;如果相反,我使用/OPT:REF进行编译就可以了。

我现在有点迷失了,你知道在这种情况下会出现什么问题吗?

1 个答案:

答案 0 :(得分:-1)

我认为你必须在相同模型下使dll失败。