【发布时间】:2013-01-22 07:24:40
【问题描述】:
我想参考一些不是由我维护的稳定库代码。其实是一些MFC代码sn-p。
但是,每当我想包含代码 sn-p 时,我必须 #include 整个文件,因此我必须包含其他内容,然后是整个 MFC ... 结果是不可接受的。
目前,我将代码 sn-p 复制/粘贴到我的项目中,但我觉得很丢脸。我可以只通过 C++ 预处理器引用文件的一部分吗?
即使代码与特定的 MFC 版本硬链接,也比在我的项目中复制它们要好。有了这样的硬链接,我就知道它来自 MFC 并节省我检查它们的时间。
有没有超级#include的用法?
我们可以写类似的东西
#include "foo.h" line [12, 55)
这意味着为 foo.h 包含第 22 到 54 行
【问题讨论】:
-
是 - 1) 你可以用“#ifdef/#ifndef/#endif”“屏蔽”你不想要的标题部分。当然,这意味着修改标题。 2)或者,您可以将所需的部分剪切/粘贴到新标题中。
-
如果您创建自己的标头并将 sn-p 复制到其中,每个版本的 MFC 一次,然后使用您的标头,它可能会最干净,IMO。不是特别好,但比破解系统提供的标头更好(这是最后的手段)。
-
您在谈论包含标题内容,不是吗?还是您应该尝试包含任何类型的实现代码?对于后者:不要这样做,而是构建一个要链接到的对象。
-
摆弄编译器头文件是一个坏主意,原因有很多。但除此之外,为了由其他人维护而引用头文件似乎不是一个特别好的主意,然后确保您必须手动编辑所述头文件才能使其工作。
标签: c++ include c-preprocessor