DLL导出变量

来源:互联网 发布:stp 查看环路端口 编辑:程序博客网 时间:2024/06/05 00:08

 DLL定义的全局变量可以被调用进程访问;DLL也可以访问调用进程的全局数据

 

1、在dll的project中的cpp文件中添加一个全局变量。

如:在dynamic.cpp中

#include "stdafx.h"#include "dynamic.h"int dllGlobalVar;int __declspec(dllexport) add(int x, int y){return x - y;}


2、在dynamic.h中

#ifndef DYNAMIC_H#define DYNAMIC_Hextern int dllGlobalVar;extern "C" int __declspec(dllexport) add(int,int);#endif


在此我们声明了全局变量dllGlobalVar,在cpp文件中定义了dllGlobalVar变量。

3、我们在DllMain函数中对dllGlobalVar进行初始化:

switch (ul_reason_for_call){case DLL_PROCESS_ATTACH:dllGlobalVar = 100;printf("DLL_PROCESS_ATTACH\n");break;case DLL_THREAD_ATTACH:printf("DLL_THREAD_ATTACH\n");break;case DLL_THREAD_DETACH:printf("DLL_THREAD_DETACH\n");break;case DLL_PROCESS_DETACH:printf("DLL_PROCESS_DETACH\n");break;}


4、在另一工程中调用dll中的变量

 

 

 

 

 

原创粉丝点击