//myapi.h (myapi.dll)
#define MY_DLL_API __declspec(dllexport)
#define Malloc(size) AlignMalloc(size, __FILE__, __FUNCTION__, __LINE__)
创建动态链接库里可以有宏定义吗?如果有,是怎样的形式导出呢?
#define Malloc(size) MY_DLL_API AlignMalloc(size, __FILE__, __FUNCTION__, __LINE__) // 是这样导入导出吗?
3 个解决方案
#1
宏在编译时候就直接替换了,不能存在了, 不能作为符号导出. 要使用宏直接包含头文件就行了, 不需要去链接什么的, 所以也根本不需要导出.
#2
VC编译选项加/EP /P(项目、属性、配置属性、C/C++、预处理器、预处理到文件:是,预处理取消显示行号:是),重新编译,查看宏展开后对应的.i文件。gcc加-E
http://bbs.csdn.net/topics/391003898
#3
明白了, 谢谢啦~
#1
宏在编译时候就直接替换了,不能存在了, 不能作为符号导出. 要使用宏直接包含头文件就行了, 不需要去链接什么的, 所以也根本不需要导出.
#2
VC编译选项加/EP /P(项目、属性、配置属性、C/C++、预处理器、预处理到文件:是,预处理取消显示行号:是),重新编译,查看宏展开后对应的.i文件。gcc加-E
http://bbs.csdn.net/topics/391003898
#3
明白了, 谢谢啦~