歷史原因 項目中已有的代碼有了很多全局變量,
之前這些變量相安無事,
直到需要添加一個內存管理的功能,而這個功能也需要一個全局變量,但是這個全局變量必須在所有其他全局變量之前執行初始化。
最開始使用#pragma section(SECNAME,long,read)的方法,把某個函數加入到某個section中,因為CRT是按照section的字母序執行的,這個方法
在exe中執行的很好,不幸的是我們是在一個dll中,這個方法不奏效。
最后查看msdn,寫道:如果是使用dll,使用
#pragma init_seg
#pragma init_seg(compiler)
_CRTIMP2 MemoryManager MemMnger;
這樣,初始化工作在編譯器初始化的時候就執行了,連斷點都斷不到了