如何操作dll中的全局变量呢

v鼠来宝v 2004-06-25 11:41:48
我使用vc6中的win32动态连接库向导建立的程序中,有全局变量 nWin32test

使用隐式连接可以容易的操作
现在我想问一下,如果使用显式连接如何操作全局变量 nWin32test呢


另外
#ifdef WIN32TEST_EXPORTS
#define WIN32TEST_API __declspec(dllexport)
#else
#define WIN32TEST_API __declspec(dllimport)
#endif

// This class is exported from the win32test.dll
class WIN32TEST_API CWin32test {
public:
CWin32test(void);
// TODO: add your methods here.
};

extern WIN32TEST_API int nWin32test;

WIN32TEST_API int fnWin32test(void);


//---------------------------------------------

能否告诉我,在编译DLL过程中,WIN32TEST_API使用的是预定义的#define WIN32TEST_API __declspec(dllexport)吗,可是我没看到有WIN32TEST_EXPORTS的定义
...全文
143 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
needways 2004-06-25
  • 打赏
  • 举报
回复
datatype* pExternVariant = (datatype*)GetProcAddrss("VariantExportName")
v鼠来宝v 2004-06-25
  • 打赏
  • 举报
回复
我使用vc6中的win32动态连接库向导建立的程序中,有全局变量 nWin32test

使用隐式连接可以容易的操作
现在我想问一下,如果使用显式连接如何操作全局变量 nWin32test呢

这个有人回答吗
v鼠来宝v 2004-06-25
  • 打赏
  • 举报
回复
#define WIN32TEST_EXPORTS

#include Mydll.h

难道按这个顺序不可以吗
//---------------------
// Mydll.h
// #ifdef WIN32TEST_EXPORTS
// #define WIN32TEST_API __declspec(dllexport)
// #else
// #define WIN32TEST_API __declspec(dllimport)
// #endif
//-------------------------------
lianglp 2004-06-25
  • 打赏
  • 举报
回复
在Exe中WIN32TEST_API 就会变成__declspec(dllimport),如果在DLL中它会变成__declspec(dllexport),因为WIN32TEST_EXPORTS在菜单:project->settins->C/C++->preprocessor/definitions这个里定义的,你去看看DLL有就会有,而EXE没有。
needways 2004-06-25
  • 打赏
  • 举报
回复
不可以。

如果放在头文件中,使用时将会定义为
#define WIN32TEST_API __declspec(dllexport)
而不是
#define WIN32TEST_API __declspec(dllimport)
v鼠来宝v 2004-06-25
  • 打赏
  • 举报
回复
哦,我看到了,可为什么要放到哪里呢,
如果我在include头文件前#define WIN32TEST_EXPORTS可以吗
needways 2004-06-25
  • 打赏
  • 举报
回复
WIN32TEST_EXPORTS 可以在 Project->Setting->C/C++ 里面看到。
v鼠来宝v 2004-06-25
  • 打赏
  • 举报
回复
呵呵,真的可以,开始我以为用它不行呢,谢谢

15,471

社区成员

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

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