MSVS 7, линковка с включенной оптимизацией, DLL, COM
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
MSVS 7, линковка с включенной оптимизацией, DLL, COM - 2010-06-02 14:30:09.560000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Исходники всего доступны и я могу их менять: 1. Есть некая .lib, которая статически линкуется с CRT; ATL не используется 2. Есть моя .dll, которая статически линкуется с CRT; динамически линкуется с ATL; линкуется с либой из п.1. ATL нужен для того, чтобы вызвать некоторый COM-метод, принимающий в качестве параметра CComBSTR. В коде есть такая строка: CComBSTR bstrPath = path.c_str(); где path - это std::wstring. При линковке получаю такой warning: LINK : warning LNK4089: all references to 'ATL71.DLL' discarded by /OPT:REF Отключение оптимизации не помогает (warning пропадает, поведение всё равно не устраивает). Программа работает но с определёнными странностями, которые проявляются только в release версии. Нигде не падает, но при вызове COM метода в конечное приложение приходят не совсем верные данные. Добавление вызова MessageBox перед вызовом COM метода устраняет проблему. Вопрос: какой бубен использовать в MSVS 7, чтобы поведение библиотеки не отличалось для debug и release версий? P.S. при разруливании проблем с линковкой использовалась эта ссылка: http://msdn.microsoft.com/en-us/library/aa267384.aspx
|
|
|
RE: MSVS 7, линковка с включенной оптимизацией, DLL, COM - 2010-06-02 18:17:06.670000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Вопрос снят, проблема была в том, что Firefox не сбрасывает кэш файлов на диск до тех пор, пока не отработает скрипт, а COM методы вызывались из скрипта.
|
|
|
|
|