2010-12-01 72 views
0

我iporting來自外部的dll的方法,並有下面的代碼:C#dllimport的問題

[DllImport("test.dll", CharSet = CharSet.Unicode, SetLastError = true)] 
    public static extern TabPage CreateGUI(); 

,並稱之爲:

tabControl1.TabPages.Add(CreateGUI()); 

我得到的錯誤,指出CreateGui無法定位在DLL中。 CreateGui方法已經在dll中聲明爲public和static?任何人有任何想法?

謝謝。

+0

是test.dll一個.net DLL或一些Legacy DLL? – TalentTuner 2010-12-01 10:57:42

+0

公共?你試圖「導入」一個.Net程序集? DllImport是否僅用於Interop/COM程序集? – willvv 2010-12-01 10:58:29

回答

2

如果該方法返回一個TabPage它是一個.NET方法,因此它是一個.NET程序集。那麼你不應該用DllImport導入它,而是將dll作爲參考添加到你的項目中。

編輯:
如果要動態地你需要Assembly.LoadFile加載它,然後用Assembly.GetTypes找到你的類型加載.NET程序集。