我正在尝试导出/导入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:无法解析的外部符号
如果能提供任何帮助或至少提供一些建议,我将不胜感激。
答案 0 :(得分:0)
对于宏,请使用
#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
。