我想在C#应用程序中使用C ++代码,所以我用C ++写了一个DLL。
因为这是我第一次创建C ++ DLL,所以我首先创建了一个“测试” DLL。这是代码
extern "C"
{
__declspec(dllexport) void DisplayHelloFromDLL()
{
printf("Hello from DLL !\n");
}
}
比我做了一个非常简单的C#应用程序:
class DllTest {
[DllImport("Test.dll")]
public static extern void DisplayHelloFromDLL();
public static void UseDll() {
DisplayHelloFromDLL();
}
}
之后,我构建了两个应用程序,并将可执行文件和dll移动到同一文件夹中。但是当我运行可执行文件时,它显示以下消息:
未处理的异常:System.DllNotFoundException:无法加载DLL'Test.dll':找不到指定的模块
最佳答案
您需要将DLL存储在debug文件夹中。
并尝试使用此命令检查方法是否正确导出
dumpbin /exports Test.dll
关于c# - 为什么我的C#应用程序无法加载我的C++ dll?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45253569/