[問題] C#如何使用DLL

看板C_and_CPP作者 (z781c7iz)時間9年前 (2015/03/22 20:13), 9年前編輯推噓5(5015)
留言20則, 7人參與, 最新討論串1/1
開發平台(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

03/22 20:23, , 1F
你要加入的dll,是用.Net Framework開發的嗎??
03/22 20:23, 1F

03/22 20:25, , 2F
可能它裡面的函式都是Unmanaged函式
03/22 20:25, 2F
因為只學過java,所以這我也不清楚... 這個fwlib32.dll也有附在檔案裡面,但程式A不用加入參考就可以用了 而我的是 嘗試加入參考->無法加入 不加入參考->不能用 (但程式A也沒加入啊?奇怪)

03/22 21:15, , 3F
LoadLibrary
03/22 21:15, 3F

03/22 23:29, , 4F
c#使用dll方法很簡單 #using就是了
03/22 23:29, 4F

03/22 23:30, , 5F
打錯...MC++.... C#你要去C_Sharp板問比較好
03/22 23:30, 5F

03/22 23:31, , 6F
c#要用managed dll的話應該也是#using 但是要load普通
03/22 23:31, 6F

03/22 23:31, , 7F
DLL的話查關鍵字[DllImport]
03/22 23:31, 7F
應該說我的問題是 明明我的配置和程式A一樣 為什麼他的能用我的不行 程式A也沒有使用using... 還是先謝謝各位提供的意見

03/23 07:48, , 8F
@@ Link -> input ,類似gcc I/usr/local/lib/mydll -o $@
03/23 07:48, 8F

03/23 07:49, , 9F
在Project裡面摸摸看Q_Q
03/23 07:49, 9F

03/23 10:02, , 10F
我覺得重點就是一樓問的那件事情,那個dll是用什麼寫的?
03/23 10:02, 10F

03/23 10:02, , 11F
一樣是用.NET framework (C#, or...),還是用C, C++寫的
03/23 10:02, 11F

03/23 10:03, , 12F
如果配置都是一樣的話,那就有可能是那個dll的位置放錯了
03/23 10:03, 12F

03/23 10:04, , 13F
沒放進專案,或是放錯資料夾之類的吧… = =
03/23 10:04, 13F

03/23 10:05, , 14F
另外,明明就有個版叫做「C_Sharp」呀…怎麼會在這問呢?
03/23 10:05, 14F

03/24 16:53, , 15F
請廠商提供 .h 檔讓你呼叫比較快
03/24 16:53, 15F

03/24 22:00, , 16F
我發現你的問題了 你少了fwlibe1.dll這個檔案
03/24 22:00, 16F

03/24 22:01, , 17F
自己去Debug資料夾底下看看吧
03/24 22:01, 17F

03/24 22:09, , 18F
我想應該是Fanuc提供fwlib32.cs呼叫Fwlib32.dll裡的functio
03/24 22:09, 18F

03/24 22:12, , 19F
而這些function會用到fwlibe1.dll
03/24 22:12, 19F

03/24 22:14, , 20F
所以基本上Fwlib32.dll和fwlibe1.dll這兩個檔案都需要
03/24 22:14, 20F
問題解決了,謝謝您!之前一直沒有想到問題會在其他的DLL! ※ 編輯: i1k1y (61.223.231.124), 03/25/2015 00:59:39
文章代碼(AID): #1L3h7a5O (C_and_CPP)