我不清楚如何Dll导出指向static / thread_local变量的指针。我的问题如下(所有在Windows上(使用MSVC 2015))
我在我的" projectLibrary"项目
指向thread_local变量的指针
class ToBeExported;
extern thread_local ToBeExported* toBeExportedCurrentThread;
主类(带DLL导出)
class __declspec(dllexport) ToBeExported
{
public:
ToBeExported(int m) : m_(m) {}
private:
int m_;
};
我有另一个在其实现中使用toBeExportedCurrentThread的类
template<typename T>
class UserToBeExported
{
...
}
在我的客户项目&#34; projectClient&#34;我使用UserToBeExported
UserToBeExported u;
u.use();
但这会导致LNK2001 未解决的外部符号&#34;类ToBeExported * toBeExportedCurrentThread&#34;
我曾尝试在指针变量上使用__declspec(dllexport),但无济于事。任何人都知道在Windows上导出static / thread_local变量的规则是什么?
干杯,迈克