乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 126|回复: 8

仅标头库。

[复制链接]

27

主题

193

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
300
发表于 2010-2-9 00:00:14 | 显示全部楼层 |阅读模式
我有十几个我经常使用的类,我想把它们放在一个“只包含头的库”中,我可以根据需要将其包含在我的项目中

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

27

主题

193

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
300
发表于 2010-2-9 00:52:04 | 显示全部楼层
:kewl:
只是常见的内联问题。仅供参考,如果函数/类/结构是模板,则除非使用inline关键字,否则它们不会内联。此外,不要内联类ctor/dtor,除非您确切知道为什么需要内联它们以及将生成什么代码。即使类及其基的ctor/dtor为空,因为它们确实不是空的。此外,如果函数是内联的,并且对函数进行了更改,则需要重新编译使用内联函数的所有其他函数。如果函数是非内联的并且进行了更改,那么使用的函数只需要重新链接到非内联函数
为了尽可能多地维护2个源文件(.cpp.h对),使用视觉辅助将使其变得更简单。我一直在用gcc和功能差得多的IDE(Xcode、NetBeans、Qt Creator和Eclipse)编写代码,但它真的很糟糕
哦,即使您只想转到页眉,您仍然可能需要维护一个单独的.inl文件。
回复

使用道具 举报

15

主题

190

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
250
发表于 2010-2-9 01:42:59 | 显示全部楼层
谢谢你的信息。除非我把所有东西都内联,否则链接器会呕吐。我不介意做这件事。h/lib组合,我只是在寻找阻力最小的路径
回复

使用道具 举报

27

主题

193

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
300
发表于 2010-2-9 01:50:49 | 显示全部楼层

如果我正确理解了你的意思-
这就是. inl文件的帮助。
回复

使用道具 举报

15

主题

190

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
250
发表于 2010-2-10 09:27:51 | 显示全部楼层
我广泛使用只包含头的库,尤其是允许MFC 9/ARX 2010项目在早期版本的VC/AutoCAD中构建和运行。换句话说,对于目标是强制“客户机”源代码文件在不修改的情况下工作的情况,我只使用头文件,而不考虑“成本”。对于其他共享库,如注册表访问类、文件路径类等,我链接到预构建的.lib文件。
回复

使用道具 举报

15

主题

190

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
250
发表于 2010-2-10 12:41:19 | 显示全部楼层

您能提供更多详细信息或示例代码吗?
回复

使用道具 举报

15

主题

190

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
250
发表于 2010-2-10 21:24:07 | 显示全部楼层
我能想到的一个不是来自专有项目的例子是声明添加缺失AcGiFaceData成员的内联函数(我在这里讨论了这些函数-尽管它们在博客文章中没有内联):
http://otb . manusoft . com/2009/03/ObjectARX-2010-dealing-with-missing . htm
这些函数的目的是“修复”ObjectARX 2010中的链接器错误,而不需要对版本无关的源代码进行任何更改。我碰巧有我的ObjectARX构建环境设置,这样每个ObjectARX项目都有一个特殊的。特定于ObjectARX SDK版本的h文件。我在头文件中添加了任何定制的特定于版本的东西,就像这样。通过把它们都放在一个头文件中,我不需要担心库版本或名称修饰不匹配。
回复

使用道具 举报

27

主题

193

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
300
发表于 2010-2-10 22:05:38 | 显示全部楼层
顺便说一句,“头文件库”的另一个示例是 ObjectARX 向导使用的入口点实现。整个实现是使用内联函数和__declspec(selectany)全局变量的独立实现。
回复

使用道具 举报

15

主题

190

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
250
发表于 2010-2-11 04:32:50 | 显示全部楼层
谢谢欧文,我注意到ARX中的一些类只有头,即CAcExtensionModule。我只是好奇这样做会有什么副作用。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-5 22:01 , Processed in 0.250334 second(s), 70 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表