在網上,看到一個問題 “什麼是全局變量?”說實話,這個問題我想了一會兒。覺得有二義性,可能大部分人會說,只要是在堆棧外面定義的 就是全局。 我覺得,全局這個概念,我想反問提問者,是線程全局?進程全局? 好吧,我今天想說說後者的。其實,在寫hook的時候,大家都知道,進程需要共享dll中的全局變量。沒錯,就是它,我覺得被進程共享的 才叫全局。
Cpp代碼
#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;
}