我在C#應用程序中從非託管DLL mscorpe.dll導入CreateICeeFileGen()函數,以便生成PE文件。這個函數返回一個指向C++對象的指針defined here,有沒有什麼辦法可以通過C#從這個類中訪問字段,還是我需要編寫一個非託管的包裝器DLL?在C#中使用P/Invoke通過指針實例化C++類
我目前使用的代碼如下: -
[DllImport(@"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorpe.dll", EntryPoint = "CreateICeeFileGen")]
static extern void CreateICeeFileGen(out IntPtr iceeFileGenPointer);
...
IntPtr filePtr;
CreateICeeFileGen(out filePtr);
注::我知道你可以用.net庫做類似的事情,但我需要爲我的目的使用非託管庫。
在此先感謝!
非常感謝,效果很好,但是因爲我想做COM互操作,我更喜歡它作爲ICeeFileGen傳遞指針的一個非常小的包裝。不幸的是,這意味着我的圖書館必須使用不安全的代碼... grrr ...無論如何!有用!謝謝!! – ljs 2008-10-13 16:06:12