-3

我创建了一个静态 dll 文件以供某个应用程序使用。我想知道该 dll 的导出方法是由该应用程序的单独线程还是由单个线程调用的。我在想,如果我输出调用 dll 中方法的线程的 threadid,这可能有助于我确定该函数是由单个线程还是多个线程调用的。这会有帮助吗?另外,我将如何获取调用 dll 的线程的 threadid ?

4

1 回答 1

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);
    }
}
于 2013-03-04T10:32:09.297 回答