[問題] 自訂控制項 加入form後找不到dll

看板C_Sharp (C#)作者時間6年前 (2018/09/27 10:07), 6年前編輯推噓6(6015)
留言21則, 5人參與, 6年前最新討論串1/1
最近嘗試使用C# 接券商api下單 因為每個程式下單前都要先登入券商 所以後來把登入券商這段作成自訂控制項,方便未來程式使用 而自訂控制項中就有引用券商的api,該api為c++所編譯之dll 所以使用 [DllImport("SorApi.dll", EntryPoint = "XXXX")] 來引用dll 當自訂控制項完成後,從工具箱要拉到新的form時 卻出現 無法載入DLL 'Sorapi.dll' ,找不到指定的模組 (發生例外狀況於HRESULT:0x8007007E)的錯誤 檢查後確實連同自訂控制項的dll及該dll會引用到的dll 都一併放置於新程式的bin\debug中 現在的疑問就是 若不使用自訂控制項 土法煉鋼 把登入券商的動作 直接寫在form中 就正常 但使用自訂控制項 拉到form裡 就無法載入DLL 若在DllImport時把路徑寫死,卻又可正常載入DLL,但此作法可適性差 不知各位大大是否有遇過類似狀況得以解決的嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.163.109.14 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1538014024.A.39B.html

09/27 11:12, 6年前 , 1F
那你把帳密放在appsetting裡,form的建構寫個方法call
09/27 11:12, 1F

09/27 11:13, 6年前 , 2F
應該也不用做成控制項吧? 登入失敗API應該會回MSG就EXCEP
09/27 11:13, 2F

09/27 11:13, 6年前 , 3F
TION就抓他應該就好了感覺不用寫控制項啊
09/27 11:13, 3F

09/27 12:12, 6年前 , 4F
放在.sln的資料夾呢?
09/27 12:12, 4F

09/27 12:13, 6年前 , 5F
或者是.projc的資料夾?
09/27 12:13, 5F

09/27 12:59, 6年前 , 6F
謝謝n大回覆好方法,但我還是想知為何這樣不行XD
09/27 12:59, 6F

09/27 13:00, 6年前 , 7F
回s大,可以放的資料夾我都放了,除了system32 XD
09/27 13:00, 7F
※ 編輯: qngu86 (1.163.109.14), 09/27/2018 13:01:14

09/27 13:40, 6年前 , 8F
你哪些是用c#,哪些是用c++/clr
09/27 13:40, 8F

09/27 13:41, 6年前 , 9F
沒試過c# form的控制項是用外部的控制項
09/27 13:41, 9F

09/27 13:49, 6年前 , 10F
券商的dll好像是用c++寫的 其他我用c#
09/27 13:49, 10F

09/27 16:10, 6年前 , 11F
你有加入專案嗎?
09/27 16:10, 11F

09/27 18:11, 6年前 , 12F
我建議關注點分離,你做三大class。 1. 控制項就是純的
09/27 18:11, 12F

09/27 18:11, 6年前 , 13F
外框,最好能做個interface,把控制項內一定會用到的but
09/27 18:11, 13F

09/27 18:11, 6年前 , 14F
ton, textbox定義一下,裡面不含任何事件處理。 2. 定義
09/27 18:11, 14F

09/27 18:11, 6年前 , 15F
後端class,專門呼叫別人的dll,最好也做interface,把
09/27 18:11, 15F

09/27 18:11, 6年前 , 16F
討人厭的import限制在這個class內。 3.溝通用class,建
09/27 18:11, 16F

09/27 18:12, 6年前 , 17F
構時輸入兩邊的interface,把所有的的事件處理寫在這裡
09/27 18:12, 17F

09/27 18:12, 6年前 , 18F
09/27 18:12, 18F

09/27 23:41, 6年前 , 19F
謝謝你的建議
09/27 23:41, 19F

09/30 13:10, 6年前 , 20F
印象中使用自定控制項後,相對路徑會變成執行檔的相對路
09/30 13:10, 20F

09/30 13:10, 6年前 , 21F
徑,可以確認一下是不是這個因素
09/30 13:10, 21F
文章代碼(AID): #1Rh3j8ER (C_Sharp)
文章代碼(AID): #1Rh3j8ER (C_Sharp)