在ExternVarDll.def中添加:
;在DLL中导出变量
LIBRARY "ExternVarDll"
DESCRIPTION "实现一个导出变量的DLL"
EXPORTS
myVar DATA
在ExternVar.cpp中添加:
#include "ExternVar.h"
#include "Windows.h"
char* myVar;
//DLLMain函数,即DLL的入口函数
BOOL WINAPI DllMain(HANDLE hInst,ULONG ul_reason_for_call,LPVOID lpReserved)
{
switch( ul_reason_for_call)
{
case DLL_PROCESS_ATTACH: //新的进程要访问DLL
myVar="新的进程访问了DLL的导出变量";
break;
case DLL_THREAD_ATTACH: //新的线程要访问DLL
case DLL_THREAD_DETACH: //一个线程不再使用DLL
case DLL_PROCESS_DETACH:
myVar=" ";
break;
}
return true;
}
在ExternVar.h中添加:
extern char* myVar;
在调用的UseExternvarDll类中添加
void CUseExternVarDllDlg::OnLoad()
{
// TODO: Add your control notification handler code here
HINSTANCE hdll;
hdll=LoadLibrary("..//Debug//ExternVar.dll");
if(hdll!=NULL)
{
m_strVar=*(char**)GetProcAddress(hdll,"myVar");
UpdateData(FALSE);
FreeLibrary(hdll);
}
else
{
AfxMessageBox("无法加载DLL!");
return ;
}
}