[英]how to create a lib file which has global variables and these global variables should share it's information to another project
在Visual Studio 2008中创建了项目。现在我们要将项目拆分为许多库文件(DLL),但问题是我们有全局变量,这些变量位于单独的globals.h文件中,使用此文件,我们将使用extern关键字在整个项目中访问全局变量在externals.h中声明的
如何在不同的库文件之间共享这些全局变量信息?
globals.h externs.h
int a=0; extern int a;
int b=0; extern int b;
... ...
... ...
注意:globals.h在项目中仅包含一次。
全局变量的常用方法如下:
globals.h
extern int a;
extern int b;
globals.c
int a = 1;
int b = 2;
请注意,变量的实际定义在ac(或cpp)文件中。
如果要从dll导出全局变量,则必须执行其他步骤。
globals.h
#ifdef MYDLL_EXPORTS
#define MYDLL_API __declspec(dllexport)
#else
#define MYDLL_API __declspec(dllimport)
#endif
extern MYDLL_API int a;
extern MYDLL_API int b;
globals.c
#include "globals.h"
MYDLL_API int a = 1;
MYDLL_API int b = 2;
生成dll时,必须定义MYDLL_EXPORTS。 如果您从其他dll或可执行文件中使用它,则必须未定义它。
__declspec(dllexport)
告诉链接器:此符号(变量,函数,类)将由其他dll或应用程序使用。
__declspec(dllimport)
告诉编译器:此符号未在此项目中定义,但在另一个dll中定义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.