我试图在VB.NET中调用C ++本机的一些函数,但我有一个奇怪的问题。如果我在发布模式下编译我的C ++ DLL它可以工作,如果我在调试模式下编译它会抛出一个错误,如:
无法加载DLL“DllName.dll”:参数不正确。 (HRESULT异常:0x80070057(E_INVALIDARG))
我认为在开始时可能会出现调试DLL中引用的MSVCR100D.dll问题但事实并非如此。
相反,我发现如果我使用选项/OPT:NOREF
编译我的C ++ DLL,它就不起作用;如果相反,我使用/OPT:REF
进行编译就可以了。
我现在有点迷失了,你知道在这种情况下会出现什么问题吗?
答案 0 :(得分:-1)
我认为你必须在相同模型下使dll失败。