如何避免全局变量与导入库中的函数之间的名称冲突?

时间:2016-01-19 08:52:32

标签: c++

我正在尝试导入Excel COM对象,以便在C ++程序中读取和写入Excel单元格数据。

但是当我为COM导入必要时,它说 程序中的全局变量与导入库中的函数名称之间存在名称冲突。 我不想将我的全局变量名修改为else,因为它已在很多地方使用过。

还有另一种方法可以避免这种冲突吗? 以下是我的MWE。

//MicroSoft Office Objects
#import "C:\Program Files (x86)\Common Files\microsoft shared\OFFICE12\mso.dll"\
    rename("DocumentProperties","DocumentPropertiesXL")\
    rename("RGB","RBGXL")


int connect;

int main(int argc, _TCHAR* argv[])
{


    return 0;
}

1 个答案:

答案 0 :(得分:4)

选项1:不要使用全局变量。这是最好的选择。

选项2:引入命名空间:

namespace my_project {
    int connect;  
};

然后,您可以使用my_project::connect访问此内容,或将using namespace my_project;using my_project::connect;放入您使用它的文件中。