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

标签 c++ .net interop

我试图在 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/

相关文章:

c++ - 如何在C++中转换为utf8字符串

c# - DataGridView:复制完整到剪贴板

c# - 在 .Net 3.5 上使用 ICSharpCode.AvalonEdit?

c# - 以编程方式设置时区仅适用于 + UTC 时区

c# - Excel Interop (Visual Studio C#) - "Embed Interop Type"属性

.net - 对于采用var args的函数,正确的PInvoke签名是什么?

c++ - 开关盒中的默认值

c++ - 此代码处于无限循环中,想知道如何修复它

c++ - C++/编译器/重载中的二维数组

.net - 在云端存储许多小型数据库