我們的一個應用程序是在C#/。NET 1.1/VS2003,需要保持原樣:-(遷移從.NET 2.0到.NET 1.1 - 的DllImport不再起作用
我需要使用代碼。另一個.NET 2.0中的C#程序集:由於技術上的限制(.NET 1.1是強制性的,因此不可能直接使用.NET 2.0),我將代碼從.NET 2.0項目中解放出來,以適應.NET 1.1(不容易的,因爲沒有泛型,局部禁止等)。
我1.1代碼現在編譯,但在執行時失敗,因爲一個EntryPointNotFoundException由於P /調用到非託管DLL。
什麼奇怪的是,我想首先確認在.NET 2.0我的變化,我沒有任何問題導入DLL:
[DllImport(FreeImageLibrary, EntryPoint = "FreeImage_GetFileTypeFromHandle")]
public static extern FREE_IMAGE_FORMAT GetFileTypeFromHandle(ref FreeImageIO io, fi_handle handle, int size);
的聲明是在這兩個項目中的相同,當然DLL也是一樣的。 DUMPBIN.EXE給出了簽名:
[email protected]
我也試圖聲明該名字對應的入口點,但也不管用,以及拼命想改變CallingConvention
,CharSet
,ExactSpelling
.. 。 沒門 !
這可能會之一:
從方式的改變.NET 1.1和2.0,但我沒有找到任何東西,從錯誤中以這種方式去
之間
DllImport
作品在我的代碼遷移到.NET 2.0到1.1,但我不明白這是怎麼可能是這種情況下精確(我甚至追溯代碼看到的大小參數,io
和handle
,他們是相同的在這兩種情況下)...我無法想到的東西!
非常感謝您的專業知識!
我投票結束這個問題「不是一個真正的問題」。 – Lucero 2011-02-17 16:01:17