我正在努力克服C ++中的变量链接。假设有一个人: 1
namespace MyNamespace
{
extern "C" const bool ReferToMe = true;
}
我希望能够通过名称空间限定常量名称(即MyNamespace::ReferToMe
)从另一个名称空间引用该常量。但是,无法编译:
error C2039: 'ReferToMe': is not a member of 'MyNamespace' error C2065: 'ReferToMe': undeclared identifier
为什么这不起作用? 如何引用如上所示定义的常量?
1。当类型库imported同时具有named_guids
和rename_namespace
属性时,预处理器以这种方式定义GUID常量。
答案 0 :(得分:1)
我认为您必须使用两个 extern
字,因为第一个(extern "C"
)表示链接器规范(无重复)和第二个 - 变量的外部性。
尝试这样的事情:
namespace MyNamespace
{
extern "C"
{
extern const bool ReferToMe;
}
}
或
extern "C"
{
extern const bool ReferToMe;
}
namespace MyNamespace
{
const bool &ReferToMe(::ReferToMe);
}