2014-05-18 35 views
0

我在我的公司有一個商業問題 我們有一個Wavenis產品項目,他們給我們SDK(DLL文件)這個應用程序運行在緊湊的框架下3.5的Windows Mobile 6.1 我使用的DLL文件通常作爲 1-上的引用右擊 2-附加參考 3-瀏覽和選擇所需的dll 4-複製的dll到輸出C#如何動態加載第三方(.net)在Windows Mobile下的.Dll

現在公司沒有按不需要使SDK可以使用
我Google它,我只是使用 使用Syste m.Reflection; 程序集classLibrary1 = null; classLibrary1 = Assembly.LoadFrom(filename); (type.GetInterfaces()!= null) 返回Activator.CreateInstance(type)作爲IClass1;如果(type.GetInterfaces()!= null) 返回Activator.CreateInstance(type) 但是這並不適合我的工作,如果任何人有任何想法,請幫助我

我已經看過這個線程Compact Framework C# loading DLL dynamically,但沒有幫助我

回答

1

我會第一個問題是,爲什麼不只是Add References足夠?如果您在設計時擁有該文件,則應該使用該機制。

Mt第二個問題是「它不起作用」是什麼意思?你有例外嗎?什麼類型的異常?用什麼信息?

通常這些將在您的問題的「意見」之下,但我確信我知道答案。

如果您使用「添加引用」,但Studio失敗或給出錯誤消息,則可能是因爲該DLL是本機(即不是.NET程序集)DLL。試圖動態加載它也會失敗(IIRC與BadImageFormatException)。

您不能只將.NET Reference(通過Studio或代碼)添加到本機DLL,這通常是第三方硬件供應商提供的。如果它是一個本地DLL,您可能可以使用P/Invoke調用庫,只要它具有公共的,非損壞的,C導出的(即不是C++類)函數。