2011-02-17 142 views
4

我們的一個應用程序是在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] 

我也試圖聲明該名字對應的入口點,但也不管用,以及拼命想改變CallingConventionCharSetExactSpelling .. 。 沒門 !

這可能會之一:

  • 從方式的改變.NET 1.1和2.0,但我沒有找到任何東西,從錯誤中以這種方式去

  • 之間DllImport作品在我的代碼遷移到.NET 2.0到1.1,但我不明白這是怎麼可能是這種情況下精確(我甚至追溯代碼看到的大小參數,iohandle,他們是相同的在這兩種情況下)

  • ...我無法想到的東西!

非常感謝您的專業知識!

+0

我投票結束這個問題「不是一個真正的問題」。 – Lucero 2011-02-17 16:01:17

回答

1

哦 - 我剛剛意識到我有一個DLL名稱衝突引發了這個問題(.NET項目和非託管的DLL具有相同的名稱)......哎呀!對不起,我的問題完全沒有意義。無論如何感謝閱讀!