繁体   English   中英

如何创建一个具有全局变量的lib文件,这些全局变量应将其信息共享给另一个项目

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM