Ошибка при импорте / экспорте переменной

Я пытаюсь экспортировать / импортировать переменную между EXE и DLL.
Есть три папки. B.cpp в одной папке, которая производит exe.
C.cpp находится в другой папке, которая производит DLL.

A.h находится в общей папке, если нам нужно использовать что-то между папками, мы используем эту папку. Он имеет только заголовочные файлы.

A.cpp находится в папке, которая производит DLL.

В А.ч

__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

Решение

Для ваших макросов используйте что-то вроде

#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,

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]