[問題] 用自己的DLL來呼叫另一個DLL(OpenCV)中的API

看板C_and_CPP作者 (pica)時間12年前 (2013/12/21 11:16), 編輯推噓2(2013)
留言15則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) OpenCV 問題(Question): 我自己寫一個DLL檔, 希望能執行OpenCV的func, 附上的程式是讀一張圖. 然後再秀出來. 但是compile 沒問題, 一執行就掛掉了. 餵入的資料(Input): 一張圖path 預期的正確結果(Expected Output): 能用OpenCV秀出一張圖 錯誤結果(Wrong Output): 執行的時候, 卡在call openCV 的 imread 於 0x6aa51200 (MathFuncsDll.dll) 的 MyExecRefsDll.exe 中發生未處理的例外狀況: 0xC0000005: 讀取位置 0x00000000 時發生存取違規 程式碼(Code):(請善用置底文網頁, 記得排版) http://pastie.org/8566962 補充說明(Supplement): 卡了一個禮拜, 請大神指點方向... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.61.122.2 ※ 編輯: einstein328 來自: 210.61.122.2 (12/21 11:25) ※ 編輯: einstein328 來自: 210.61.122.2 (12/21 11:47)

12/21 12:58, , 1F
你編譯成static
12/21 12:58, 1F

12/21 13:17, , 2F
語法對,語意錯
12/21 13:17, 2F

12/21 14:51, , 3F
@diabloevagto 我把static 拿掉, 會出現找不到進入點
12/21 14:51, 3F

12/21 14:51, , 4F
冏了
12/21 14:51, 4F

12/21 14:52, , 5F
@johnpage 可以請教一下, 哪裡有問題嗎
12/21 14:52, 5F

12/21 15:58, , 6F
btw, 我自己寫的兩個DLL沒問題,但是用OpenCV,就會掛..
12/21 15:58, 6F
※ 編輯: einstein328 來自: 27.241.109.117 (12/22 00:50)

12/22 01:54, , 7F
直接用主程式掛openCV跑imread, 這樣就知道原因
12/22 01:54, 7F

12/22 01:55, , 8F
錯誤訊息的讀取位置 0x00000000是關鍵, 表示有東西為NULL
12/22 01:55, 8F

12/22 01:56, , 9F
看起來最有可能的是傳入值有問題, 請確認
12/22 01:56, 9F

12/22 10:58, , 10F
我其實一開始就是主程式, 直接call imread
12/22 10:58, 10F

12/22 10:59, , 11F
沒問題, 只是被要求要用 dll 來call
12/22 10:59, 11F

12/22 11:52, , 12F
用debug模式就可以知道程式當掉時是哪個出問題,
12/22 11:52, 12F

12/22 11:54, , 13F
你需要的是學習如何Debug, Dll也是可以Debug
12/22 11:54, 13F

12/22 11:59, , 14F
跳出警告訊息後可以從Call Stack看到是哪邊的值有錯
12/22 11:59, 14F

12/27 16:16, , 15F
謝拉 各位, 我已經解決這個問題了
12/27 16:16, 15F
文章代碼(AID): #1IjGVyUR (C_and_CPP)