繁体   English   中英

如何使__declspec(thread)在Windows CE上工作

[英]How to get __declspec(thread) working on Windows CE

我有一个包含以下内容的课程:

class SomeClass {
    SomeClass *previous;
    static __declspec(thread) SomeClass *stackTop;

public:
    SomeClass() : previous(stackTop) { stackTop = this; }
    ~SomeClass() { stackTop = previous; }
};

__declspec(thread) SomeClass *SomeClass::stackTop = NULL;

对于Win32目标,这可以正常编译,但是在Pocket PC 2003 (ARMV4)编译时失败,错误C2485:

error C2485: '$I' : unrecognized extended attribute

在我在SomeClass构造函数和析构函数中设置成员的两个地方,以及在我实例化SomeClass所有地方(将其实例化为自动变量,并且需要知道堆栈中下一个实例的位置)。

不幸的是,该错误在MSDN中没有有意义的文档,并且__declspec(thread)的文档没有指出在任何情况下均无法使用。 我确实检查了thread是否未在预处理器中定义。

我不认为Pocket PC版本(Windows CE)支持__declspec(thread)属性(TLS)。 它可以解释为什么只有在为Pocket PC而不是Win32编译时才会出现这种情况。 请参阅以下链接:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM