可以使用导入导出宏。
在DLL中*.cpp如下定义:
_declspec(dllexport) int g_iYourVar=0; //
在EXE中如下引用:
_declspec(dllimport) int g_iYourVar; //
注意全局变量不可定义在一个*.h中,然后在DLL和EXE中分别#include,如果这样,全局变量的
变化不能在DLL和EXE中得到体现。
在DLL中*.cpp如下定义:
_declspec(dllexport) int g_iYourVar=0; //
在EXE中如下引用:
_declspec(dllimport) int g_iYourVar; //
注意全局变量不可定义在一个*.h中,然后在DLL和EXE中分别#include,如果这样,全局变量的
变化不能在DLL和EXE中得到体现。
好象不行,EXE中出现了这样的错误:error LNK2001: unresolved external symbol "__declspec(dllimport) int g_iYourVar" (__imp_?m_f10key@@3HA)
好象不行,EXE中出现了这样的错误:error LNK2001: unresolved external symbol "__declspec(dllimport) int g_iYourVar" (__imp_?m_f10key@@3HA)
静态使用
导入类的声明:
1.DLL工程的声明最好为扩展MFC类型;
2.在DLL中有以下类声明
//MyClass.h
class AFX_EXT_CLASS CMyClass
{
............};
3.在使用DLL的类的工程中,需要以下配置
A.在Project|Setting中的Link标签页的Object/library Modules 中加入*.lib
B.在Tools|Options中的Directories 标签页中的 Show directories for:下面的
Include files 中增加Myclass.h的路径;Lib files中增加*.lib 和*.dll路径。
C.在使用工程的代码中如下即可:
#include "MyClass.h"
......
CMyClass MyClass;
如:
DLL中:
static int g_nGlobalVal;
_declspec(dllexport) int Modify(int nInput);
_declspec(dllexport) int Get(int nInput);
EXE中:
_declspec(dllimport)……
_declsprc(dllimport)……如果要在多个DLL或者EXE之间共享则可以:
#pragma data_seg("Shared")
int g_GlobalVal;
#pragma data_seg()
修改或者获取同上
……
试试吧,有什么出入,尽快通知