首页
社区
课程
招聘
[求助]VC6编译TLS会导致TLS回调函数地址被覆盖
发表于: 2009-7-24 16:35 4762

[求助]VC6编译TLS会导致TLS回调函数地址被覆盖

2009-7-24 16:35
4762
如题。
按照CodeProject上的方法,包含tlsfix.h似乎是能够保证工程只含少数文件的情况下正常工作。但是我在一个复杂的多文件工程中添加Tls回调函数时,该回调函数地址被另外的某个cpp文件中定义的一个长字符串覆盖掉。
有什么好的办法解决这个问题吗?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 143
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
也遇到过,不过没什么好办法解决。通常都是通过调换定义变量的顺序来解决。哎。希望有人给出个好办法来
2009-7-25 01:57
0
雪    币: 558
活跃值: (43)
能力值: ( LV12,RANK:220 )
在线值:
发帖
回帖
粉丝
3
全局变量以及程序中使用的常量字符串等都可能导致地址被覆盖,对于稍大点的工程改变变量顺序应该是不可行的吧?
一种比较繁琐的办法是将全局变量和程序中使用的常量字符串等定义到自定义的某个段,我的意思是像下面这样:
#pragma data_seg(".Global")
int g_dwInt = 0;
......
#pragma data_seg()
这种方法从理论上来说是可行的,但确实非常麻烦,特别在工程比较大的时候。
期待巧妙的办法。
2009-7-25 11:59
0
雪    币: 143
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
希望微软能早点解决这个该死的BUG
2009-7-25 12:41
0
雪    币: 4349
活跃值: (4333)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
vc6微软早就不管了
2009-7-25 13:20
0
游客
登录 | 注册 方可回帖
返回
//