2015-05-28 6 views
0

Я переношу свое исполняемое приложение C++ ATL с VS2003 на VS2013.Миграция C++ ATL Исполняемое приложение от VS2003 до VS2013

В VS 2003

класс CExeModule: общественный CComModule

В VS2013 (его было изменено)

класс CExeModule: общественный ATL :: CAtlExeModuleT < CExeModule>

Я успешно мигрировали проект, во время компиляции я столкнулся проблема с

**

ошибка C2664: 'ATL :: CHandle :: CHandle (HANDLE) бросок()': не может преобразовать аргумент 1 из 'BOOL' в 'ATL :: CHandle &'

**

Я не получаю эту ошибку, если я закомментировать следующий код

_AtlModule.WinMain (nShowCmd);

Может помочь решить эту проблему?

Дополнительная информация

C: \ Program Files \ Microsoft Visual Studio 12.0 \ VC \ atlmfc \ Include \ atlbase.h (3628): ошибка C2664: «ATL :: CHandle :: CHandle (HANDLE) throw() ': невозможно преобразовать аргумент 1 из' bool 'в' ATL :: CHandle & 'C: \ Program Files \ Microsoft Visual Studio 12.0 \ VC \ atlmfc \ include \ atlbase.h (3608): while компиляция класса шаблон член функции 'HRESULT ATL :: CAtlExeModuleT :: PreMessageLoop (int) throw()' C: \ Program Files \ Microsoft Visual Studio 12,0 \ VC \ atlmfc \ включать \ atlbase.h (3695): см ссылку на шаблон функции экземпляра 'HRESULT ATL :: CAtlExeModuleT :: PreMessageLoop (интермедиат) броска()' будучи скомпилирован

stdafx.h (107): см ссылку на шаблон класса экземпляра «ATL :: CAtlExeModuleT» компилируется

+0

Я полагаю, проблема в вашем 'CExeModule :: PreMessageLoop', который вы не показываете. –

+0

У меня нет никакого PreMessageLoop в моем коде ... вот где я удивлен ... –

+0

Что-то еще тогда вмешивается (некоторый заголовок включен в stdafx.h или где и где). Вы можете создать чистый проект ATL EXE в VS2013, чтобы убедиться, что он создан, и, как известно, он отлично подходит для построения.Линия с WinMain включает цепочку вызовов в этом классе, которая в итоге попадает в столкновение. Я не думаю, что эта линия плоха сама по себе (хорошо выглядит). –

ответ

0

Спасибо Игорь Tandetnik ....

Я решил проблему после изменения имени функции в классе CExeModule BOOL StratMonitor()