递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 1213|回复: 9
打印 上一主题 下一主题

[类库封装] 论火山视窗类库封装难度问题

[复制链接]

279

主题

1958

帖子

7836

积分

贵宾

Rank: 9Rank: 9Rank: 9

积分
7836
QQ
跳转到指定楼层
楼主
发表于 2025-7-23 10:31:54 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
1.封装开源项目时,首先要解决的是头文件冲突问题。
这个问题才是重点,为啥呢?因为VS新建项目中同样使用的头文件包含目录,但VS不报错。
火山中引入相同的头文件则报错。
这种问题就很难搞。
有些报错是开源项目和某个微软函数冲突导致的,有些判断不出来是啥问题导致的。




如:我碰到的封装OGRE游戏引擎
VS中新建的项目属性页就配置了
附加包含目录和附加库目录和输入,其他是新建项目时默认的属性。









火山中跟VS同步属性配置,为啥就会报冲突问题呢。






碰到这种问题就很难搞,完全没有思路。当前我也卡在这。市面上也没相关教程
我搜简述(谐音),CSDn、知户(谐音)、各种AI都询问过都没有相关的教程。AI给的方案也试过也处理不了。



2.嵌入有难度
视窗封装需要各种嵌入符号来回组合,C++都没这么复杂。封装视窗类库相当于掌握C++和各种嵌入符号。
这种就需要降低嵌入符号的组合,最好使用几个符号就能封装市面上百分之60的开源项目。

火山视窗封装视频教程
回复

使用道具 举报

279

主题

1958

帖子

7836

积分

贵宾

Rank: 9Rank: 9Rank: 9

积分
7836
QQ
来自 3#
 楼主| 发表于 2025-7-23 10:38:45 | 只看该作者
本帖最后由 沉默流星 于 2025-7-23 10:40 编辑

补充一点,火山中C++17是我为了测试使用高版本,视窗是不是就不会报头文件冲突问题了。但经过测试就算正成高版本也不行。说明不是C++版本问题导致的冲突。
而不是开源项目使用的C++17。
火山视窗封装视频教程
回复

使用道具 举报

99

主题

672

帖子

4268

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4268
沙发
发表于 2025-7-23 10:35:09 | 只看该作者
顶一下
回复

使用道具 举报

29

主题

2400

帖子

8566

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
8566
地板
发表于 2025-7-23 11:59:52 | 只看该作者
是你的常量类型PI,跟火山的vol_decl.h里的PI宏冲突了。
回复

使用道具 举报

279

主题

1958

帖子

7836

积分

贵宾

Rank: 9Rank: 9Rank: 9

积分
7836
QQ
5#
 楼主| 发表于 2025-7-23 12:09:45 | 只看该作者
Xelloss0618 发表于 2025-7-23 11:59
是你的常量类型PI,跟火山的vol_decl.h里的PI宏冲突了。

是的,这个我也验证了,的确是视窗中的头文件
https://bbs.voldp.com/thread-26696-1-1.html
火山视窗封装视频教程
回复

使用道具 举报

279

主题

1958

帖子

7836

积分

贵宾

Rank: 9Rank: 9Rank: 9

积分
7836
QQ
6#
 楼主| 发表于 2025-7-23 12:10:48 | 只看该作者
Xelloss0618 发表于 2025-7-23 11:59
是你的常量类型PI,跟火山的vol_decl.h里的PI宏冲突了。

我奇怪的是您是如何快速定位是视窗的头文件冲突了,也是转VS项目查看的嘛,能否分享下经验
火山视窗封装视频教程
回复

使用道具 举报

29

主题

2400

帖子

8566

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
8566
7#
发表于 2025-7-23 15:56:05 | 只看该作者
沉默流星 发表于 2025-7-23 12:10
我奇怪的是您是如何快速定位是视窗的头文件冲突了,也是转VS项目查看的嘛,能否分享下经验 ...

先搜了 语法错误:"常数",看到错误原因之一就是跟宏有关。
再看常量名是 PI 圆周率,就有印象了,因为以前大致看过火山的宏。
回复

使用道具 举报

279

主题

1958

帖子

7836

积分

贵宾

Rank: 9Rank: 9Rank: 9

积分
7836
QQ
8#
 楼主| 发表于 2025-7-23 16:09:19 | 只看该作者
Xelloss0618 发表于 2025-7-23 15:56
先搜了 语法错误:"常数",看到错误原因之一就是跟宏有关。
再看常量名是 PI 圆周率,就有印象了,因为以 ...

好的谢谢
火山视窗封装视频教程
回复

使用道具 举报

19

主题

84

帖子

1868

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
1868
9#
发表于 2025-7-23 23:36:19 | 只看该作者
火山的万事通非 X 大莫属  有时候我都怀疑他是机器人  问题一眼就知道哪里的问题
回复

使用道具 举报

36

主题

366

帖子

3170

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3170
10#
发表于 7 天前 来自手机 | 只看该作者
吴总请首先解决引用c++的兼容和简便,引用后嵌入语句有函数和参数提示,像非嵌入语句一样的,解决冲突等,这才是首要问题
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2025-7-31 03:55 , Processed in 0.106435 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表