Re[9]: а если так ?
От: Сергей Мухин Россия  
Дата: 11.12.13 06:01
Оценка: +1
Здравствуйте, Pavel Dvorkin, Вы писали:

СМ>>может я не понимаю что предлагается, но я вижу, что код функций из библиотеки содержится один раз во всем процессе. Это так?


PD>Нет, именно не так.


PD>Еще раз.


PD>Создаем свою static library, включающую в себя исходную library. Статически включающую, то есть код исходной static library просто находится в нашей static library. Статически влинкован.

PD>Создаем еще одну свою static library, включающую в себя исходную library тем же образом

PD>Итого имеем 2 свои static library и ничего больше пока. В первой library все имена функций начинаются на my1, во второй — на my2, все остальное одинаково.


PD>Создаем EXE — проект.


PD>Подключаю в него my1lib. Имею полное право. И буду из нее вызывать my1* функции. Они будут вызывать исходные функции, которые внутри my1lib.

PD>Подключаю в него my2lib. Имею полное право. И буду из нее вызывать my2* функции. Они будут вызывать исходные функции, которые внутри my2lib.

PD>Исходную library в проект EXE не включаем вообще, не нужно.


PD>То есть в my1lib сидит код исходной lib, а в my2lib сидит его копия.


Дело в том, что lib (не импортная, для DLL) это всего лишь контейнер для объектных файлов (грубо говоря). Соответственно Вы будете иметь в каждой библиотеки копию объектников исходной библиотеки. При построении EXE будет выбор исходжнй объектников из первой подключенной библиотеки. Т.е. у Вас будет одна копия и всё что полагается для одной копии.
---
С уважением,
Сергей Мухин
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.