昨天用QT編的程序從True64拿到NT上編譯運行,發現退出時總是core,不知道什麼原因。
後來,發現可能是debug版和release版的問題。庫裏申請的內存在應用程序裏釋放,兩個版本如果不一致的話,會有問題。
NT下查看可執行程序或動態庫的版本,用dumpbin gui.exe /dependents ,,,查看信息
如果有MSVCRTD.DLL證明是debug版本,MSVCRT.DLL就是release版。
NT下cl的幾個編譯選項:
/MDd Creates a debug multithreaded DLL, using MSVCRTD.LIB
/Zi Generates complete debugging information
/nologo Suppresses display of sign-on banner