Поскольку этот пост стал намного больше, чем должен был быть, я начал снова.
Моя проблема в том, что для некоторого резонанса часть моего проекта на c ++ автоматически компилируется в общую библиотеку, и поэтомубольше не делит статическую область видимости с остальной частью моей кодовой базы.
Я выделил причину этого, но все еще не понимаю, почему это произойдет.
Я интегрирую стороннюю разделяемую библиотеку вмой проект, который требует, чтобы я также добавил некоторые классы в мой проект.
Если я только ссылаюсь на библиотеку и включаю заголовки, мой проект выводит exe-файл, и все выглядит замечательно.
Второе, что я добавляю:
(CAkFilePackageLowLevelIOBlocking - это один из классов, который мне нужно было добавить с помощью кода cpp в мой проект)
protected:
CAkFilePackageLowLevelIOBlocking m_LowLevelIO;
в мой класс SoundManager, затем сборка, в конце я получаю эту дополнительную строку, сообщающую мне о выводе файла .lib и .exp:
1> Generating Code...
1> Creating library D:\DustCloud\WorkingCopy\src\VS2010\Debug\GameDbg.lib and object D:\DustCloud\WorkingCopy\src\VS2010\Debug\GameDbg.exp
1> VS2010.vcxproj -> D:\DustCloud\WorkingCopy\src\VS2010\Debug\GameDbg.exe
Итак, чтобы опубликовать гораздо более простой вопрос,
Что можетбыть причиной того, что мой проект должен был создать файл .lib, просто добавив члена класса типа, данного мне библиотекой?
Может ли это быть определением прагмы или чем-то похожим где-то в тех классах, которые вызывают.Выходные данные lib?
Я использую VS2010 и создаю простое старое приложение win32 c ++