我试图在 VB.NET 中调用 C++ native 的一些函数,但我遇到了一个奇怪的问题。如果我在 Release 模式下编译我的 C++ DLL,它会工作,如果我在 Debug 模式下编译它,它会抛出如下错误:
Unable to load DLL 'DllName.dll': The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))
一开始我认为调试 DLL 中引用的 MSVCR100D.dll 可能有问题,但事实并非如此。
相反,我发现如果我使用选项 /OPT:NOREF
编译我的 C++ DLL,它不起作用;相反,如果我使用 /OPT:REF
编译它,它就可以工作。
我现在有点迷茫,你知道在这种情况下可能是什么问题吗?
最佳答案
我认为你必须让 dll 在同一个模型上失败。
关于c++ - 无法使用/OPT :NOREF 在 .NET 中加载 C++ DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9905585/