Здравствуйте! Я хочу получить вектор дескрипторов дочерних окон, но VS 2010 не разрешает... вот описание ошибок:
1>------ Build started: Project: Win32, Configuration: Debug Win32 ------ 1> main.cpp 1>libcpmtd.lib(stdthrow.obj) : error LNK2019: unresolved external symbol __CrtDbgReportW referenced in function "void __cdecl std::_Debug_message(wchar_t const *,wchar_t const *,unsigned int)" (?_Debug_message@std@@YAXPB_W0I@Z) 1>E:\!Projects\Win32\Debug\Win32.exe : fatal error LNK1120: 1 unresolved externals ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
вот код:
| Код | #include <windows.h> #include <tchar.h> #include <vector> using namespace std; LRESULT CALLBACK WindowProc(HWND, UINT, WPARAM, LPARAM); TCHAR szClassWindow[] = TEXT("Смещение меню пуск"); INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpszCmdLine, int nCmdShow) { HWND hWnd; MSG lpMsg; WNDCLASSEX wcl; wcl.cbSize = sizeof(wcl); wcl.style = CS_HREDRAW | CS_VREDRAW; wcl.lpfnWndProc = WindowProc; wcl.cbClsExtra = 0; wcl.cbWndExtra = 0; wcl.hInstance = hInst; wcl.hIcon = LoadIcon(NULL, IDI_APPLICATION); wcl.hCursor = LoadCursor(NULL, IDC_ARROW); wcl.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH); wcl.lpszMenuName = NULL; wcl.lpszClassName = szClassWindow; wcl.hIconSm = NULL;
if (!RegisterClassEx(&wcl)) return 0;
hWnd = CreateWindowEx( 0, szClassWindow, TEXT("Смещение меню пуск"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInst, NULL);
ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd);
while(GetMessage(&lpMsg, NULL, 0, 0)) { TranslateMessage(&lpMsg); DispatchMessage(&lpMsg); } return lpMsg.wParam; } static vector<HWND> hBuf; BOOL CALLBACK EnumChildProc(HWND hWnd, LPARAM lParam) { hBuf.push_back(hWnd); wchar_t buf1[128] = {0}; MessageBox((HWND)lParam,TEXT(""),TEXT(""),MB_OK); MoveWindow(hWnd,0,0,100,100,true); return TRUE; // продолжаем перечисление дочерних окон } LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam){ HWND h; static int i = 0; static RECT rect; switch(uMessage){ case WM_KEYDOWN: switch(wParam){ case VK_RETURN: SetWindowText(hWnd,TEXT("ENTER")); //if(hBuf.empty()){ h = FindWindow(TEXT("CalcFrame"), TEXT("Калькулятор")); EnumChildWindows(h, EnumChildProc, (LPARAM) hWnd); //} //MoveWindow(hBuf[0],0,0,100,100,true); break; case VK_ESCAPE: SetWindowText(hWnd,TEXT("ESCAPE")); break; } break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, uMessage, wParam, lParam); } return 0; }
|
Помогите пожалуйста... |