这样定义的头文件 编译也不出错 运行正常 何解?

Gushleo 2011-08-11 02:57:28
动态库头文件Dll.h

//导出接口功能
#define DLL_EXPORT

//导出接口
#ifdef DLL_EXPORT
#define DLL__API __declspec(dllexport)
#else
#define DLL__API __declspec(dllimport)
#endif

// 初始化动态库
DLL__API void DLL_Init(HWND hMainWnd);
// 释放库信息
DLL__API void DLL_Release();


调用的api.cpp
也只有#include "Dll.h"
并无看到#undef DLL_EXPORT


奇怪按道理 导入应该使用__declspec(dllimport)
可是按照上面的导入时却是使用 __declspec(dllexport)


难道 导入 用 __declspec(dllexport)或__declspec(dllimport)
都无所谓 ?
...全文
83 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gushleo 2011-08-11
  • 打赏
  • 举报
回复
恩 谢谢
wltg2001 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 gushleo 的回复:]
恩 那定义成__declspec(dllexport)

不会出问题吧?
[/Quote]
没事的,可以的。
Gushleo 2011-08-11
  • 打赏
  • 举报
回复
恩 那定义成__declspec(dllexport)

不会出问题吧?
wltg2001 2011-08-11
  • 打赏
  • 举报
回复
不定义也行的,链接程序会找在LIB文件中找到相关的信息进行链接的。
ndy_w 2011-08-11
  • 打赏
  • 举报
回复
msdn:
You do not need to use __declspec(dllimport) for your code to compile correctly, but doing so allows the compiler to generate better code.
Gushleo 2011-08-11
  • 打赏
  • 举报
回复
按道理应该是定在dll的cpp里的
可是它定义在了 .h里面

但是程序却能正常运行 所以感到奇怪
所以想问问 可能会出现上面隐患?
ndy_w 2011-08-11
  • 打赏
  • 举报
回复
#define DLL_EXPORT
这个是在dll的cpp里的吧?

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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