VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 1044|回复: 3

条件编译的问题

[复制链接]
44_avatar_middle
最佳答案
0 
online_vip 发表于 2016-12-29 16:45:23 | 显示全部楼层 |阅读模式
30驿站币
别人的源码:

#ifdef A1PACK_BASE_EXPORTS
#define A1PACK_BASE_API __declspec(dllexport)
#else
#define A1PACK_BASE_API __declspec(dllimport)
#endif


A1PACK_BASE_API bool A1Pack_Base(LPWSTR strPath,bool bShowMsg);


A1PACK_BASE_API 这时被编译时应该是dllimport吧。。。这是一个dll工程,应该导出一个A1Pack_Base函数,而导出函数应该是用dllexport,但是为什么不提前定义一个A1PACK_BASE_EXPORTS呢。。不定义时,这个A1PACK_BASE_API 这时不是被定义为dllimport了吗???而本意是导出一个函数,却没有定义A1PACK_BASE_EXPORTS,结果查看时却能用工具看到的确是导出了。是怎么回事。。
条件编译的问题


而如果我自己添加一句

#define A1PACK_BASE_EXPORTS //这里是我添加的一句。。
#ifdef A1PACK_BASE_EXPORTS
#define A1PACK_BASE_API __declspec(dllexport)
#else
#define A1PACK_BASE_API __declspec(dllimport)
#endif


结果编译时又提示:
1>c:\users\administrator\desktop\11\a1pack base\a1pack_base\A1Pack_Base.h(53): warning C4005: “A1PACK_BASE_EXPORTS”: 宏重定义
1>          命令行参数: 参见前面的“A1PACK_BASE_EXPORTS”定义


又提示宏重定义了。

条件编译的问题

请问这到底是怎么回事???

最佳答案

查看完整内容

在工程的属性中可能定义了哦,到这里看看:




上一篇:有什么比较好c语言的金融交易类开源的软件?
下一篇:求助一个WEBBrowser问题
51_avatar_middle
最佳答案
82 
online_admins 发表于 2016-12-29 16:45:24 | 显示全部楼层
在工程的属性中可能定义了哦,到这里看看:
条件编译的问题
44_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2017-1-5 11:11:16 | 显示全部楼层
Syc 发表于 2016-12-29 16:45
在工程的属性中可能定义了哦,到这里看看:

老大是最棒的,不知道那个PE结构的后续还更新吗。后续不是说要缩写壳吗,提个建议。最好有两种方案写,一种是纯C++实现,一种是C++和win32asm混合实现。期待中。。
51_avatar_middle
最佳答案
82 
online_admins 发表于 2017-1-5 11:47:00 | 显示全部楼层
hahacker 发表于 2017-1-5 11:11
老大是最棒的,不知道那个PE结构的后续还更新吗。后续不是说要缩写壳吗,提个建议。最好有两种方案写,一 ...

嗯,有的中期教程已经更新的差不多了,稍后就放出来条件编译的问题
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-9-29 03:01

Powered by CcTry.CoM

© 2009-2020 cctry.com

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