Совместно использовать переменную между c ++ dll - PullRequest
0 голосов
/ 17 октября 2019

У моего приложения есть 2 DLL, одна из которых объявляет буфер в своем заголовочном файле

#pragma once
#ifdef STUBS_EXPORTS
#define STUBS_API __declspec(dllexport)
#pragma message("1")
#else
#define STUBS_API __declspec(dllimport)
#pragma message("2")
#endif
unsigned char SendBuffer[255];

Нет, мне нужно только иметь 1 SendBuffer, совместно используемый двумя библиотеками DLL и, в конечном счете, исполняемым файлом.

Как этого добиться? Я перечитал данные, используя data_seg и dllimort, но, похоже, ничего не получилось

Я пытался использовать импорт и экспорт, как показано выше, но это приводит к сообщению об ошибке

 error C2491: 'E0SendStartMarker': definition of dllimport data not allowed

У меня естьтакже пытался использовать data_seg

#pragma data_seg("SHARED")
unsigned char E0SendBuffer[255];
unsigned char E0SendStartMarker = 0;
unsigned char E0SendEndMarker = 0;
#pragma data_seg()
#pragma comment(linker, "/section:SHARED,RWS")

Но это тоже не сработало

Каков рекомендуемый способ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...