VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 817|回复: 4

[求助] 条件编译的问题

[复制链接]
44_avatar_middle
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
online_admins 发表于 2016-12-29 16:45:24 | 显示全部楼层
在工程的属性中可能定义了哦,到这里看看:
条件编译的问题
44_avatar_middle
ico_lz  楼主| 发表于 2017-1-5 11:11:16 | 显示全部楼层
Syc 发表于 2016-12-29 16:45
在工程的属性中可能定义了哦,到这里看看:

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

嗯,有的中期教程已经更新的差不多了,稍后就放出来条件编译的问题
75_avatar_middle
在线会员 发表于 2017-1-5 22:47:14 | 显示全部楼层
ddddddddddddddddddddd
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

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

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

GMT+8, 2019-5-21 17:50

Powered by Discuz! X3.4

© 2009-2019 cctry.com

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