多年前寫的一個軟體用了bcg7.2,在臺式機64位win7下正常,但在筆記本64位win7下起不來,記憶體到5M左右就停了(行程在,但記憶體到5M就不動了,軟體未起來,也不報錯),除錯后發現阻塞在bcg中的SHGetFileInfo呼叫處,且只有用了SHGFI_SYSICONINDEX引數才會阻塞,但在exe中呼叫該函式卻又不會阻塞,沒思路了,請教大蝦!
(筆記本和臺式機環境上只多了一個北信源,卸載了也不行,再就是都有瑞星,也禁用所有監控了)。
軟體設定了XP兼容性運行和管理員權限運行,debug視窗顯示First-chance exception in xx.exe (KERNELBASE.DLL): 0x000006BA: (no name),根據查的資料把列印服務啟動了也不行。
還有何思路??【猴子疑問】
uj5u.com熱心網友回復:
剛發現,動態庫中把SHGetFileInfo之前的CoInitialize去掉就可以了,但是為什么呢??uj5u.com熱心網友回復:
參考一下MSDN中SHGetFileInfo的Remark部分的說明https://docs.microsoft.com/en-us/windows/desktop/api/shellapi/nf-shellapi-shgetfileinfowuj5u.com熱心網友回復:
仔細查了一遍,別的地方也沒有呼叫CoInitializeuj5u.com熱心網友回復:
5M左右停止, 以個人經驗 防火墻 殺毒軟體阻止的可能性很大uj5u.com熱心網友回復:
試了把殺毒、北信源都卸載了,防火墻關了,還是不行,而且發現,只有在動態庫的全域變數建構式里呼叫有問題,在exe的全域變數或者直接呼叫動態庫的匯出函式都沒問題,徹底糊涂了uj5u.com熱心網友回復:
試試 構造里呼叫之前 初始化下COMuj5u.com熱心網友回復:
就是調了才阻塞,把CoInitialize去掉就好了
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/59496.html
標籤:基礎類
上一篇:VC寫入資料庫再匯出WORD
