我正在使用Visual Studio 2008 Professional,並且需要創建兩個項目的解決方案。一個項目是託管WinForms C#項目,其次是非託管DLL C++項目。非託管DLL項目和託管WinForms應用程序在一個解決方案中
我在VS2008和非託管DLL項目中創建了它們,我導出了簡單的函數,它返回一些int。在管理WinForms項目我導入的DLL在通常的方式,並試圖在標籤打印返回值:
[DllImport("DllProj.dll", EntryPoint = "GetSomeInt", SetLastError = true)]
private static extern int GetSomeInt();
但是當我建立的解決方案和運行,我得到DllNotFoundException
。我也嘗試添加一個現有的項目(DllProj.dll
)到WinForms項目,但它只是將其Debug文件夾中的該dll複製到WinForms項目的文件夾中,而不是在編譯項目所在的Debug子文件夾中。所以我仍然得到DllNotFoundException
。
我也嘗試添加它作爲參考,但VS2008抱怨說我的DLL不是COM或管理對象。有沒有一些方法來配置解決方案,使得我不需要在每次構建之後手動將編譯的DLL複製到WinForms項目的Debug子文件夾中?
好吧,我在那裏,我看到後生成事件命令行。你能告訴我那個複製它的魔法命令嗎?對不起,但我第一次這樣做,從來沒有使用過。 – sanjuro 2011-03-02 14:22:44
使用簡單的bat-file語法。例如,「複製c:\ MyProjectSource \ mydll.dll c:\ MyDestination \」 – acoolaum 2011-03-02 14:25:37
好吧,非常感謝,現在我知道如何做到這一點 – sanjuro 2011-03-02 14:28:24