C lib вызывает глобальную переменную в другой lib - PullRequest
0 голосов
/ 19 сентября 2011

У меня есть две библиотеки для упрощения: libA.lib, libB.lib

libA имеет функцию:

void read(num,*val){
*val=Globalval[num];
...
}

libB:

void write(num,val){
Globalval[num]=val;
...
}

, то естьсуть того, чего я хочу достичь.Эти две библиотеки включены в мои основные файлы проекта, а функции вызываются по отдельности.Итак, как мне это работает?Если бы эти две библиотеки были из одной и той же библиотеки, все, что мне нужно - это просто глобальная переменная.

Я использую Microsoft Visual Studio

Ответы [ 2 ]

1 голос
/ 20 сентября 2011

В один из файлов, вероятно, записывающего (libB), поместите что-то вроде этого:

int Globalval[SIZE];

В заголовочный файл, который должен быть включен libA, поместите это:

extern int Globalval[];

Если ваш пример действительно то, что вы делаете, сохраняйте обе функции в одном файле и вызывайте их откуда угодно.В этом случае вы просто помещаете прототипы функций в заголовок.

0 голосов
/ 20 сентября 2011

Вы можете использовать EXTERN

в одном из ваших заголовочных файлов libs:

extern int g_myGlobal;

в одном из ваших cpp-файлов libs:

int g_myGlobal;

Затем вам нужно будет включить заголовочный файл из одной библиотеки в другую (или любой другой файл), который хочет использовать g_myGlobal

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