我在Qt中创建了一个名为test
的函数。我创建了另一个Qt项目,我可以在没有任何问题的情况下使用DLL。我现在想在C#应用程序中使用此DLL,但是,我在调用该函数时遇到问题。我已将该DLL放在与我的C#exe相同的文件夹中。我导入像这样如何将我在Qt中创建的DLL导入到C#应用程序中
[DllImport("TestDll.dll", CharSet = CharSet.Ansi, SetLastError = true)]
private static extern bool test();
我收到以下异常的函数: EntryPointNotFoundException
我尝试添加EntryPoint = test
我的DllImport但仍然收到相同的异常
我在做什么错?
您确定测试方法是从DLL中导出的吗?下载Dependency Walker并查看它是否在出口中列出。 http://www.dependencywalker.com/ – shf301
不需要字符集,因为没有文本和SetLastError = true是错误的,这是为了赢得apis。很有可能你的DLL名称已经损坏。使用.def文件导出它以避免损坏。确保你使用extern“C”。也可以调用约定来匹配。 C++代码将使用cdecl,您的C#默认为stdcall。 –
我有一种感觉,它可能有一些事情,我没有静态构建的QT安装..不知道,但 – poco