-
-
[原创]VC6.0 浮点未初始化bug的原因
-
发表于: 2026-5-16 01:12 4662
-




可见 _cfltcvt_tab是一个全局的函数指针数组,且初始化赋值为 _fptrap
从注释中,可以发现决定初不初始化FPU的关键是 _cfltcvt_init,该符号在libc.lib中fpinit.obj中



为了更好观察 _FPinit变量,可以记录下当前指令地址 0x004017F3
使用OD调试器,调试该程序,并在断在入口点,Ctrl+G跳转到目标地址观察

// test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
int main(int argc, char* argv[])
{
float f;
printf("please input a float: ");
scanf("%f",&f);
return 0;
}
// 修改测试代码,旨在让vc6.0初始化FPU
float f = 1.0f;
[培训]《冰与火的战歌:Windows内核攻防实战》!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。
赞赏记录
参与人
雪币
留言
时间
马来
这个讨论对我很有帮助,谢谢!
2026-5-25 10:02
cr_lgdx
期待更多优质内容的分享,论坛有你更精彩!
2026-5-22 10:18
mb_wixchzwz
+1
这个讨论对我很有帮助,谢谢!
2026-5-20 11:53
赞赏
赞赏
雪币:
留言: