因为公司的软件是使用Qt的,而第三方程序提供的DLL程序是MFC编写的。使用对方提供的Demo测试DLL,效果都是OK的。但是一个奇怪的现象是,我们的程序在开启最大优化/O2之后,程序总是崩溃在一个不可能的地方。一般出现这种问题,大部分就是堆栈产生破坏了。经过了一天的焦虑,最终锁定了问题的根本。本次记录,主要是为了后续遇到类似问题,整理一套清晰的分析思路,而不用胡乱怀疑,靠着运气在网络上各种海量搜索,然后做无效的测试验证。
如果这种问题,放在以前,肯定是怀疑编译器坏了。随着一步步跟进,终于开始有点慢慢摆脱靠互联网编程的套路了。加油加油!!!
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
NutCracker DLL中的函数难道没有相关的头文件吗?如果有,就应该有函数原型,而函数原型通常都会写明是__cdecl还是__stdcall参数传递规范。只要函数原型中有参数传递规范,你的程序编译后就不可能会有这样的 ...
yu781129965 [em_13]