我正在与一个Dll一起构建一个项目。使用/ clr中的混合DLL:纯项目
该Dll必须支持本机代码,所以我将其声明为/ clr。 我的项目最初也是一个/ clr项目,一切都很好。不过,我想包括一些NUnit测试,所以我不得不将我的主项目从/ clr切换到/ clr:pure。
一切仍然编译,但任何Dll调用都会生成运行时错误。当我恢复到/ CLR一切正常
在我的DLL,导出的函数声明如下:
#define DllExport __declspec(dllexport)
DllExport bool DisplayScan(bool bShow, bool bAllPasses) { }
我也做了包含全部导出函数
实名.def文件LIBRARY "Controller"
EXPORTS
DisplayScan
从我的主要项目进口货值声明如下:
#define _DllImport [DllImport("Controller.dll", CallingConvention = CallingConvention::Cdecl)] static
_DllImport bool DisplayScan(bool bShow, bool bAllPasses)
有人遇到过这样的问题吗?