昨天用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