看板 C_and_CPP 關於我們 聯絡資訊
是這樣的 我最近使用 C#的GUI 使用 CLR的中介dll,仲介內容為 原生C++ lib 當然 C#、CLR、C++ 的檔案都是我寫的 裡面內含錯誤是不可免 但VC難以針對 lib 和 dll 做變數追蹤 且在GUI環境下連 printf 都無法使用 造成個人找錯的困難 目前個人的解決辦法如下 建立一fopen, fclose 的class,將所有函式有興趣的地方進行 fprintf 至少要讓我知道你死在哪個function裡 雖然有助於找錯,但印出的東西總是很多很雜,我擔心用久了log.txt會開很久 想詢問有沒有更好的解決辦法? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.235.221 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1541033034.A.E6F.html
petercoin: 我dll都用OutputDebugString寫訊息然後用DebugView看 11/01 09:09
petercoin: DebugView是一套軟體 11/01 09:09
感謝樓上大大~~ 問一下,你是指你寫的dll內include該軟體的lib, 然後再用DebugView看嗎? 老實說用別人的dll總是忐忑忐忑的.. 會不會突然就不支援了阿 QQ
colako: google "native managed debug visual studio" 11/01 13:01
colako: 另外,沒有 printf, 可以用 MessageBox 系列 11/01 13:03
colako: 前兩行的文章會講混合除錯模式, 可下中斷點, 用不到上一行 11/01 13:13
感謝樓上大大~~~ GOOGLE 查詢後網址如下: https://docs.microsoft.com/zh-tw/visualstudio/debugger/how-to-debug-managed-and-native-code?view=vs-2017 >> https://preview.tinyurl.com/y9kjpwuk 開啟該功能後可追蹤到方案(solution)中的所有專案(project) 至於我指的printf是 原生C++ 的印出,而不是C#的印出 不過這並沒有關係了,因為紅圈圈到的了,這樣就夠了。 針對同solution的問題就解決了 話說我原本沒想到原來只要打個勾就可以用了 看來我小瞧VS的強大了!! 我原本還在想大家會不會走 throw exception 的路線呢!! 還是說因為 throw exception 不會用在自認為不會出錯的地方 所以除錯上不會用 throw exception? 像是 vector v; v.at() 卻用 v[] 之類的... ※ 編輯: s4300026 (60.250.235.221), 11/01/2018 19:26:28
petercoin: OutputDebugString是微軟的API 所以不用擔心XD 11/02 09:52
s4300026: 太好啦,突然整個使用意願大增~~~ <3 11/02 12:14