查看: 1503|回复: 4

请问这个CONDUIT_DLL是干什么用的?

[复制链接]

该用户从未签到

发表于 2010-3-11 19:14:12 | 显示全部楼层 |阅读模式
我看的FreeSouth写的OSG程序设计教程。

第八章喷泉那个例子。
然后头文件Conduit.h里那个类的声明是这样的

  1. class CONDUIT_DLL Conduit
  2. {
  3. public:
  4. Conduit(void);
  5. ~Conduit(void);
  6. //创建喷泉
  7. osgParticle::ParticleSystem * CreateConduitScene(osg::Group* root);
  8. //粒子数目
  9. float m_fTheNum;
  10. //粒子大小
  11. float m_fTheSize;
  12. //粒子速度
  13. float m_fTheSpeech;
  14. //创建喷泉
  15. osg::Node * CreateConduit(osg::Group * root);
  16. //喷泉的具体位置
  17. osg::Vec3 m_VecPosition;
  18. };
复制代码


那个CONDUIT_DLL 下面就有一条红色波浪线。。。 编译也不能通过。。。
如果把CONDUIT_DLL 去掉了编译可以通过,但是链接的时候会出错。。。

请达人们帮忙解决一下,多谢了~~

该用户从未签到

发表于 2010-3-12 08:19:15 | 显示全部楼层
我没有看过您说的教程,不过很显然这应当是一个自己定义的类导入导出宏,如果您是在生成可执行文件,那么直接去掉这个CONDUIT_DLL应当没什么问题。您可以说一下为什么编译不能通过

该用户从未签到

发表于 2010-3-12 08:29:40 | 显示全部楼层
看似是导出函数的宏定义,搜索一下有没有这样的定义,没有的话添加一下
#if defined(XXXXX)
#define CONDUIT_DLL __declspec(dllexport)
#else
#define CONDUIT_DLL __declspec(dllimport)
#endif

该用户从未签到

 楼主| 发表于 2010-3-12 09:13:38 | 显示全部楼层
谢谢二位。
我今天又试了一下,去掉那个CONDUIT_DLL 确实是可以的。
昨天生成失败是main函数的问题……

还有我在整个OSG安装目录下搜索CONDUIT_DLL ,都没搜到……

该用户从未签到

发表于 2010-3-12 10:15:39 | 显示全部楼层
这不是OSG的导入导出宏,而是例子作者自己设计的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表