2013-04-15 1 views
0

У меня есть C++ libary in wince 6.0, Существует некоторая глобальная переменная. что libary связана с DLL, которая является C++. когда я вышел из приложения и назвал DLL. сначала его интеридировала вся глобальная переменная статической библиотеки, но когда управление возвращается в DLL к статической lib. Сброс всех значений. У кого-нибудь есть представление об этом.статическое глобальное значение lib получено после вызова из DLL

+2

Вы связались только с одной DLL со статической библиотекой lib или другими DLL или EXE, также связанными с static lib? – Ben

+0

@ben с двумя DLL, я добавил LIB – user2268978

ответ

0

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

Для решения этой проблемы вы должны преобразовать статическую библиотеку в DLL. Это можно сделать с помощью простого проекта, состоящего из файла module.def и вызова компоновщика.

Затем вместо связывания ваших библиотек DLL со статической библиотекой свяжите их со своей DLL.

В качестве альтернативы вместо двух библиотек dll объединить проект в одну DLL.

Обратите внимание, что может быть ОК, чтобы связать два модуля с одной и той же статической библиотекой при условии, что вы понимаете и принимаете, что данные НЕ будут использоваться совместно.

+0

благодаря его работе. мы используем один lib только для одной DLL. – user2268978

Смежные вопросы