Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

MSVS 7, линковка с включенной оптимизацией, DLL, COM

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> MSVS 7, линковка с включенной оптимизацией, DLL, COM
Имя
Сообщение << Старые топики   Новые топики >>
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
Post #: 1
RE: MSVS 7, линковка с включенной оптимизацией, DLL, COM - 2010-06-02 18:17:06.670000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Вопрос снят, проблема была в том, что Firefox не сбрасывает кэш файлов на диск до тех пор, пока не отработает скрипт, а COM методы вызывались из скрипта.
Post #: 2
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> MSVS 7, линковка с включенной оптимизацией, DLL, COM







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.