【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
在网上,看到一个问题 “什么是全局变量?”说实话,这个问题我想了一会儿。觉得有二义性,可能大部分人会说,只要是在堆栈外面定义的 就是全局。 我觉得,全局这个概念,我想反问提问者,是线程全局?进程全局? 好吧,我今天想说说后者的。其实,在写hook的时候,大家都知道,进程需要共享dll中的全局变量。没错,就是它,我觉得被进程共享的 才叫全局。
#pragma comment (linker, "/SECTION:GlobalValue,RWS") #include <iostream> #pragma data_seg("GlobalValue") int g_iCnt = 1000; #pragma data_seg() int PlusShow() { return printf("PlusShow %d",++g_iCnt); } int Show() { return printf("Show %d",g_iCnt); } int main(int argc) { if(argc < 2) { return Show(); } PlusShow(); getchar(); return 0; }
其实 不同段放的 不仅仅是变量。可以是函数 或者对象,非常灵活。看你自己怎么用了:)
更多http://msdn.microsoft.com/en-us/library/thfhx4st(VS.80).aspx
命令行的操作 很菜鸟 别鄙视我 :)
原文链接: http://blog.csdn.net/template_cplus/article/details/7856831