Re: Проблема при переносе проекта из VC++6 в VC++.NET
От: Alexey Goncharov Россия  
Дата: 15.07.04 06:37
Оценка:
Здравствуйте, Dagdbog, Вы писали:

D>Как решить эту проблему в 2003 студии ????


В CSampleWebApp::InitInstance() из SampleWeb.cpp есть такой кусочек кода

#if _WIN32_WINNT >= 0x0400
  CoInitializeEx(NULL, COINIT_MULTITHREADED);
#else
  CoInitialize(NULL);
#endif


В stdafx.h у тебя не определены макросы _WIN32_WINNT и WINVER
В afxv_w32.h из состава Visual Studio .NET 2003 стоит проверка: если они не определены, то их значения становятся равными 0x0501
В результате получается, что в VS 6.0 и VS .NET 2003 компилируются разные ветки этого кода.
Поскольку для ActiveX-контрола (которым является Web-browser) требуется STA-апартмент, то в варианте кода для VS .NET 2003 он просто не создается.

Соответсвенно для исправления этой ошибки необходимо убрать все проверки, оставив строчку CoInitialize(NULL);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.