头文件中的#using指令

时间:2015-03-24 15:35:39

标签: c++-cli header-files

我知道不应该在头文件中包含使用命名空间声明,因为它们使项目可用于整个项目,并且可能会产生错误的结果。但到目前为止,我一直无法找到有关头文件中是否允许“#using”指令的信息。我可以在头文件中使用它,就像在这个例子中一样吗?:

这是带有函数转发声明的头文件:

#using <System.dll>

System::Security::Cryptography::X509Certificates::X509Certificate2^ GetCertificate(int Index);

如果我不能,那么 X509Certificate2 所依赖的System.dll包含什么是workaroud?

1 个答案:

答案 0 :(得分:0)

#using指令完全using namespace关键字不同。它等同于本机C ++代码中使用的#include指令。它告诉编译器从程序集元数据中加载类型定义。

不,你不应该使用它。在最近的VS版本中它很破碎,你在项目中使用的引用程序集的确切版本与.NET 4.0相比非常重要。当你得到wrong one时,从4.5开始致命。此外,System.dll总是在正确配置的C ++ / CLI项目中引用,因此再次使用它是没有意义的。

而是使用Project + Properties,Common Properties,References。并且一定要在启动新项目时使用CLR节点中的项目模板。