C ++ / C Совместное использование глобальной переменной между двумя проектами в Visual Studio

В VS у меня есть SLN, включая 2 проекта:

Проект А:

хиджры

#include <string>
extern bool flag;

a.cpp

#include "A.h"bool flag = false;

void funcA()
{
int i = 0;
}

Проект Б:

B.h

#include <stdio.h>

B.cpp

#include "B.h"#include "..\ProjectA\A.h"
void main()
{
int j = 10;
flag  = true;
std::cout << j << "\n" << flag ;
}

Я устанавливаю projectA как DLL, projectB как EXE.

При связывании получаю ошибку: ошибка LNK2001: неразрешенный внешний символ «флаг bool» (? Flag @@ 3_NA)

Должен ли я вручную указать projectB для projectA в настройках?

Спасибо.

1

Решение

Как это:

хиджры

#ifndef LIBA_API
#define LIBA_API __declspec(dllimport)
#endif

extern LIBA_API bool flag;

a.cpp

#define LIBA_API __declspec(dllexport)
#include "A.h"LIBA_API bool flag = false;

void funcA()
{
int i = 0;
}

(не нужно никаких изменений B.h или же B.cpp)

1

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

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

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