C++ cli 在头文件中使用指令

C++ cli 在头文件中使用指令,c++-cli,header-files,C++ Cli,Header Files,我知道不应该在头文件中包含使用名称空间声明,因为它们使项可用于整个项目,这可能会产生不好的结果。但到目前为止,我无法找到头文件中是否允许使用指令的信息。我可以在这个示例中的头文件中使用它吗 这是我的带有函数转发声明的头文件: #using <System.dll> System::Security::Cryptography::X509Certificates::X509Certificate2^ GetCertificate(int Index); 如果我不能,包含X509Ce

我知道不应该在头文件中包含使用名称空间声明,因为它们使项可用于整个项目,这可能会产生不好的结果。但到目前为止,我无法找到头文件中是否允许使用指令的信息。我可以在这个示例中的头文件中使用它吗

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

#using <System.dll>

System::Security::Cryptography::X509Certificates::X509Certificate2^ GetCertificate(int Index);
如果我不能,包含X509Certificate2所依赖的System.dll的解决方法是什么?

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

不,你不应该使用它。在最新的VS版本中,它是相当破碎的,自.NET4.0以来,您在项目中使用的引用程序集的确切版本非常重要。从4.5开始致命,当你得到。此外,System.dll始终在正确配置的C++/CLI项目中引用,因此再次使用它没有任何意义


而是使用项目+属性、公共属性和引用。开始新项目时,请确保使用CLR节点中的项目模板。

我认为这不会有问题。谢谢您的回答,Hans。所以,如果我使用.NET4.5,我应该添加这些文件作为引用,而不是考虑使用,对吗?