GetVersion问题

agtian 2009-02-01 02:56:26
我需要定义一个带有GetVersion函数的dll,但系统中也有这个Api,所以造成编译失败,请我有什么好办法
...全文
222 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
hemiya 2009-02-02
  • 打赏
  • 举报
回复
加上namespace最好.
类似于Get_Version,GetVersion,get_version这种简单易懂的函数名非常容易冲突.
yumikoo 2009-02-02
  • 打赏
  • 举报
回复
加::呢?
agtian 2009-02-02
  • 打赏
  • 举报
回复
而且外部调用只用GetVersion来调用,这是一个人有病这么写的,没办法只能迁就他
agtian 2009-02-02
  • 打赏
  • 举报
回复
现在是必须使用这种函数名
僵哥 2009-02-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 Behard 的回复:]
不建议使用这种跟 API 一样的函数名,可以使用 Get_Version 等呀
[/Quote]
那是因为很多人使用习惯不好。对于C++,利用好namespace才是安全的,否则名字的冲突随时都有可能产生,你可以说现在你的命名跟API不相冲突,但是并不表示将来的API就不跟你所使用的名字冲突,难道你限制操作系统?
Behard 2009-02-02
  • 打赏
  • 举报
回复
不建议使用这种跟 API 一样的函数名,可以使用 Get_Version 等呀
僵哥 2009-02-02
  • 打赏
  • 举报
回复
namespace
僵哥 2009-02-02
  • 打赏
  • 举报
回复
如果你使用的是静态连接的话,产生冲突就比较麻烦了,只能将某些DLL进行动态加载,然后再由NameSpace来分离。
僵哥 2009-02-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 agtian 的回复:]
而且外部调用只用GetVersion来调用,这是一个人有病这么写的,没办法只能迁就他
[/Quote]
不能说使用这种命名就是人家个人问题,命名本身就需要一定的规则,通常的办法就是让使用者看到名称就知道是干什么用的.

并不是在任何时候,任何程序都需要引用到windows API.关键在于使用者碰到冲突之后要懂得如何处理冲突.
agtian 2009-02-01
  • 打赏
  • 举报
回复
类似于delphi中这个功能
exports
Divide(X, Y: Integer) name 'Divide_Ints',
Divide(X, Y: Real) name 'Divide_Reals';
ydlchina 2009-02-01
  • 打赏
  • 举报
回复
使用域名

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧