导入/导出变量时出错

Error while importing/exporting a variable

本文关键字:出错 变量 导入      更新时间:2023-10-16

我正在尝试导出/导入exe和dll之间的变量。有三个文件夹。B.cpp在一个正在生成exe的文件夹中。C.cpp在另一个正在生成dll的文件夹中。

A.h在一个共享文件夹中,如果我们需要在文件夹之间使用某些东西,我们使用这个文件夹。它只有头文件。

A.cpp位于生成dll的文件夹中。

在A.h 中

__declspec(dllexport) extern int* val;

在A.cpp 中

__declspec(dllexport) int* val;

B.cpp

#include <A.h>
set val

C.cpp

#include <A.h>
get val and using val in some function

**我得到错误B.obj:错误LNK2001:未解析的外部符号

我真的很感激任何帮助或至少一些建议,在那里我可以了解更多关于这个问题的信息。

对于宏,使用类似的东西

#ifdef VAL_EXPORTS  
#define VAL_API __declspec(dllexport)   
#else  
#define VAL_API __declspec(dllimport)   
#endif

A.h中,使用extern(即VAL_API extern int* val;(声明它;在A.cpp中,定义它时不使用extern,即VAL_API int* val = nullptr;

B.h#include A.h中,并为其分配任意值。

C.h中,只要#include A.h,就可以使用val