如果是这样,我在创建类时是否应该尽量减少头文件的使用?
(这可能晚了 3 年,但它仍然显示在谷歌搜索的顶部附近,并且该信息今天仍然有效,就像 3 年前一样)。
首先,是的,你是对的,对于 C++/CLI,除了本机 C++ 类、结构等之外,你不使用 .h 文件。
我可能想到的第一个问题是,如果我不这样做,我该如何引用我的课程#include "someheader.h"
文件?对此有两个答案:1)对于项目之外的课程; 2) 对于您项目内的课程。
1) 在 .VCPROJ 中添加对 .DLL(或解决方案中的另一个项目)的引用(项目属性页中的公共属性/框架和引用)。
2)添加一个#using otherclass.obj
,没错#using 在目标文件上!
在您的项目中,假设每个类都有自己的源文件,当您想在另一个类中引用它时,我们使用#using "a_compiled_file"
它可以是 .dll 或 .obj 文件。
在项目属性页的 C/C++ / General 下,您将看到:Resolve #using References,只需添加 MACRO 字符串$(IntDir)
。这解析为已编译源代码的中间目录。
编译器读取 .obj 文件中的元数据(就像 .dll 文件中的元数据一样)并将其用于所需的所有信息,无需 .h 头文件!
我们这样做是因为 C++/CLI 编译器太愚蠢了,无法像 C# 编译器那样记住同一项目中的类。
注意:您可能会遇到共享违规行为使用时$(IntDir)
,在这种情况下,预编译文件并将它们放在自己的目录中。编译器只需要元数据,因此除非您更改类结构(想想 .h 的东西),否则不需要每次都进行编译。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)