这是测试代码
#include "windows.h"
#include "iostream"
using namespace std;
__declspec(thread) int tls_int = 0;
void NTAPI tls_callback(PVOID, DWORD dwReason, PVOID)
{
tls_int = 1;
}
#pragma data_seg(".CRT$XLB")
PIMAGE_TLS_CALLBACK p_thread_callback = tls_callback;
#pragma data_seg()
int main()
{
cout<<"main thread tls value = "<<tls_int<<endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
使用多线程调试DLL(/ MDd)运行结果:主线程tls值= 1
使用多线程调试(/ MTd)运行结果:主线程tls值= 0
看起来无法捕获使用MTd时创建的主线程
为什么?