C# 导入 C++ dll

ray*_*ran 6 c# c++ import dll function

我有一个托管 dll 文件,它将函数从 C++ dll 导入到托管环境。我在程序中使用了它的一些功能,但问题是,当我使用它时出现此错误:

无法加载 DLL“Libraries\lib.dll”:找不到指定的模块。(HRESULT 异常:0x8007007E)

我将 .dll 文件放置在程序目录和 system32 文件夹中。然而,它仍然不起作用。我想我必须使用 DLLImport 但我不知道如何使用它..即使在看了一些例子之后我仍然很困惑。有人可以帮我吗?

Ed *_* S. 5

你说:

我将 .dll 文件放在程序的目录中...

但:

无法加载 DLL “Libraries\lib.dll”

我们需要查看您的DLLImport属性创建,即本机方法的 C# 签名。在我看来,您可能指定了路径,即

[DllImport( "Libraries\lib.dll" )];
static extern void MyNativeMethod();
Run Code Online (Sandbox Code Playgroud)

尝试使用这个代替:

[DllImport( "lib.dll" )];
static extern void MyNativeMethod();
Run Code Online (Sandbox Code Playgroud)

这将搜索运行目录以及PATH环境变量。如果您像您一样指定文件路径,我真的不知道如果找不到该文件它是否会进行搜索(我在文档PATH中找不到提及它)。