作者i1k1y (z781c7iz)
看板C_and_CPP
標題[問題] C#如何使用DLL
時間Sun Mar 22 20:13:16 2015
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Visual Studio 2013
問題(Question): 其實我原本是學JAVA的,C、C++、C#都超級不熟,但因為專題要和對方公司配合,
也只能慢慢學了...
公司的前輩看我滿身菜味,就給了我一個已經完成的簡單小程式(就叫他程式A),
這個程式的用途就是和工具機的控制器連接,並且獲得裡面的參數。
然後我也想要依樣畫葫蘆寫一個同樣的東西,
卻沒有辦法按照程式A的方式來使用DLL。
程式A把要使用的那一個DLL放在\bin\Debug,我也跟著放,
原本想說要用加入參考的方式,但是會出現:
無法加入 'xxx.dll'的參考。請確定這是一個可存取的檔案,
而且是一個有效的組件或 COM 元件。
然後執行連接函式的結果,程式A是EW_SOCKET,因為我的電腦並沒有和控制器連接,
所以出現這個是正常的,但我的是EW_NODLL,看起來就是找不到DLL的樣子...
程式碼(Code):(請善用置底文網頁, 記得排版) 因為檔案有很多個,所以我就用上傳的
程式A:
http://goo.gl/ATLnqz 我的:
http://goo.gl/h5egMg 補充說明(Supplement): 第一次就發這麼伸手的文真是抱歉...但是本魯也沒有其他人可以問了QQ
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.230.175.229
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1427026404.A.158.html
推 wenyonba: 你要加入的dll,是用.Net Framework開發的嗎??03/22 20:23
→ wenyonba: 可能它裡面的函式都是Unmanaged函式03/22 20:25
因為只學過java,所以這我也不清楚...
這個fwlib32.dll也有附在檔案裡面,但程式A不用加入參考就可以用了
而我的是
嘗試加入參考->無法加入
不加入參考->不能用 (但程式A也沒加入啊?奇怪)
推 johnpage: LoadLibrary 03/22 21:15
→ Killercat: c#使用dll方法很簡單 #using就是了 03/22 23:29
→ Killercat: 打錯...MC++.... C#你要去C_Sharp板問比較好 03/22 23:30
→ Killercat: c#要用managed dll的話應該也是#using 但是要load普通 03/22 23:31
→ Killercat: DLL的話查關鍵字[DllImport] 03/22 23:31
應該說我的問題是 明明我的配置和程式A一樣 為什麼他的能用我的不行
程式A也沒有使用using...
還是先謝謝各位提供的意見
→ Push5F: @@ Link -> input ,類似gcc I/usr/local/lib/mydll -o $@ 03/23 07:48
→ Push5F: 在Project裡面摸摸看Q_Q 03/23 07:49
推 aecho: 我覺得重點就是一樓問的那件事情,那個dll是用什麼寫的? 03/23 10:02
→ aecho: 一樣是用.NET framework (C#, or...),還是用C, C++寫的 03/23 10:02
→ aecho: 如果配置都是一樣的話,那就有可能是那個dll的位置放錯了 03/23 10:03
→ aecho: 沒放進專案,或是放錯資料夾之類的吧… = = 03/23 10:04
→ aecho: 另外,明明就有個版叫做「C_Sharp」呀…怎麼會在這問呢? 03/23 10:05
推 mthunter: 請廠商提供 .h 檔讓你呼叫比較快 03/24 16:53
推 noreg: 我發現你的問題了 你少了fwlibe1.dll這個檔案 03/24 22:00
→ noreg: 自己去Debug資料夾底下看看吧 03/24 22:01
→ noreg: 我想應該是Fanuc提供fwlib32.cs呼叫Fwlib32.dll裡的functio 03/24 22:09
→ noreg: 而這些function會用到fwlibe1.dll 03/24 22:12
→ noreg: 所以基本上Fwlib32.dll和fwlibe1.dll這兩個檔案都需要 03/24 22:14
問題解決了,謝謝您!之前一直沒有想到問題會在其他的DLL!
※ 編輯: i1k1y (61.223.231.124), 03/25/2015 00:59:39