相关疑难解决方法(0)

关于Windows中的TLS回调

这是测试代码

#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时创建的主线程

为什么?

c++ thread-local-storage

6
推荐指数
2
解决办法
8303
查看次数

标签 统计

c++ ×1

thread-local-storage ×1