![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
VisualCraft |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 24.11.2003 Репутация: нет Всего: нет |
Попробовал скрестить ATL проект с Win32 Hello Word.
Просто вставил куски из Win32 Hello Word в _tWinMain и добавил оттуда же определения и реализации функций. Добился чтобы не было ошибок, удалил меню, иконки. Мне это не нужно. Окно не создается, вываливается здесь по return // Perform application initialization: if (!InitInstance (hInstance, nShowCmd)) {return FALSE;} Может есть какой то более простой способ превратить ATL проект в оконный? Мне нужно простое окно для вывода листинга. Если у кого есть пример или нетрудно сгенерить такой пример(в минимальной конфигурации) буду очень признателен. Ниже привожу мой код функции _tWinMain ------------------------------------------------------------------------------------------------- extern "C" int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nShowCmd) //Разкоментировал hPrevInstance, nShowCmd { lpCmdLine = GetCommandLine(); //this line necessary for _ATL_MIN_CRT #if _WIN32_WINNT >= 0x0400 & defined(_ATL_FREE_THREADED) HRESULT hRes = CoInitializeEx(NULL, COINIT_MULTITHREADED); #else HRESULT hRes = CoInitialize(NULL); #endif _ASSERTE(SUCCEEDED(hRes)); _Module.Init(ObjectMap, hInstance, &LIBID_AGENTLib); _Module.dwThreadID = GetCurrentThreadId(); TCHAR szTokens[] = _T("-/"); int nRet = 0; BOOL bRun = TRUE; LPCTSTR lpszToken = FindOneOf(lpCmdLine, szTokens); while (lpszToken != NULL) { if (lstrcmpi(lpszToken, _T("UnregServer"))==0) { _Module.UpdateRegistryFromResource(IDR_Agent, FALSE); nRet = _Module.UnregisterServer(TRUE); bRun = FALSE; break; } if (lstrcmpi(lpszToken, _T("RegServer"))==0) { _Module.UpdateRegistryFromResource(IDR_Agent, TRUE); nRet = _Module.RegisterServer(TRUE); bRun = FALSE; break; } lpszToken = FindOneOf(lpszToken, szTokens); } if (bRun) { _Module.StartMonitor(); #if _WIN32_WINNT >= 0x0400 & defined(_ATL_FREE_THREADED) hRes = _Module.RegisterClassObjects(CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE | REGCLS_SUSPENDED); _ASSERTE(SUCCEEDED(hRes)); hRes = CoResumeClassObjects(); #else hRes = _Module.RegisterClassObjects(CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE); #endif _ASSERTE(SUCCEEDED(hRes)); // MSG msg; //***********************Вставка // TODO: Place code here. MSG msg; HACCEL hAccelTable; // Initialize global strings LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); LoadString(hInstance, IDC_AGENT, szWindowClass, MAX_LOADSTRING); MyRegisterClass(hInstance); // Perform application initialization: if (!InitInstance (hInstance, nShowCmd)) { return FALSE; } hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_AGENT); //*********************** while (GetMessage(&msg, 0, 0, 0)) { //if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) //{ TranslateMessage(&msg); DispatchMessage(&msg); //} } _Module.RevokeClassObjects(); Sleep(dwPause); //wait for any threads to finish } _Module.Term(); CoUninitialize(); return nRet; // return msg.wParam; не желает... нет переменной msg } |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |