我想在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/

10-12 14:12