我创建了一个静态dll文件供某个应用程序使用。我想知道该dll的导出方法是由该应用程序的单独线程还是由单个线程调用。我想如果我输出调用dll中的方法的线程的threadid,这可能会帮助我弄清楚函数是由单个线程还是多个线程调用。这会有帮助吗?另外,我如何获得调用dll的线程的线程?
答案 0 :(得分:3)
使用GetCurrentThreadId功能。
std::vector<DWORD> ids;
__declspec(dllexport) int __stdcall SomeFunction()
{
DWORD id = GetCurrentThreadID();
if (std::find(ids.begin(), ids.end(), id) != ids.end())
{
// New thread uses this function
ids.push_back(id);
}
}