我正在與一個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)
有人遇到過這樣的問題嗎?