#include <windows.h>
char ClassName[] = "##CLASS##";
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
switch(uMsg) {
case WM_CREATE:
MessageBox(0,"Hello World!","^_^",0);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
WNDCLASSEX wc;
MSG msg;
HWND hwnd;
wc.cbSize = SizeOf(wc);
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hbrBackground = COLOR_WINDOW+1;
wc.lpszClassName = ClassName;
wc.lpszMenuName = 0;
wc.hIcon = LoadIcon(0,IDI_APPLICATION);
wc.hIconSm = LoadIcon(0,IDI_APPLICATION);
wc.hCursor = LoadCursor(0,IDC_ARROW);
RegisterClassEx(&wc);
hwnd = CreateWindowEx(0,ClassName,"$$$$$$$$$",WS_OVERLAPPEDWINDOW,300,200,300,200,0,0,hInstance,0);
ShowWindow(hwnd, SW_SHOW);
UpdateWindow(hwnd);
while (GetMessage(&msg,0,0,0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
Visual Studio 2008. повредился PATH
но вот.. однажды мой PATH повредился... то, что помнил - я восстановил, но все не помню... пожалуйста, подскажите, что должно быть там
или может есть какая-то возможность восстановить PATH по-другому? :(
уже переустанавливал студию, да ток почему-то не помогло :(...
компилирую вот такую программку (я не уверен, что она должна работать.. а вообщк пробую написать окошко ):
Код:
и вижу вот такие ошибки:
Код:
C:\>cl test.c
test.c
test.c(29) : warning C4047: '=' : 'HBRUSH' differs in levels of indirection from 'int'
c:\test.c(23) : warning C4700: uninitialized local variable 'wc' used
Microsoft (R) Incremental Linker Version 9.00.21022.08
Copyright (C) Microsoft Corporation. All rights reserved.
/out:test.exe
test.obj
test.obj : error LNK2019: unresolved external symbol __imp__DefWindowProcA@16 referenced in function _WndProc@16
test.obj : error LNK2019: unresolved external symbol __imp__PostQuitMessage@4 referenced in function _WndProc@16
test.obj : error LNK2019: unresolved external symbol __imp__MessageBoxA@16 referenced in function _WndProc@16
test.obj : error LNK2019: unresolved external symbol __imp__DispatchMessageA@4 referenced in function _WinMain@16
test.obj : error LNK2019: unresolved external symbol __imp__TranslateMessage@4 referenced in function _WinMain@16
test.obj : error LNK2019: unresolved external symbol __imp__GetMessageA@16 referenced in function _WinMain@16
test.obj : error LNK2019: unresolved external symbol __imp__UpdateWindow@4 referenced in function _WinMain@16
test.obj : error LNK2019: unresolved external symbol __imp__ShowWindow@8 referenced in function _WinMain@16
test.obj : error LNK2019: unresolved external symbol __imp__CreateWindowExA@48 referenced in function _WinMain@16
test.obj : error LNK2019: unresolved external symbol __imp__RegisterClassExA@4 referenced in function _WinMain@16
test.obj : error LNK2019: unresolved external symbol __imp__LoadCursorA@8 referenced in function _WinMain@16
test.obj : error LNK2019: unresolved external symbol __imp__LoadIconA@8 referenced in function _WinMain@16
test.obj : error LNK2019: unresolved external symbol _SizeOf referenced in function _WinMain@16
test.exe : fatal error LNK1120: 13 unresolved externals
test.c
test.c(29) : warning C4047: '=' : 'HBRUSH' differs in levels of indirection from 'int'
c:\test.c(23) : warning C4700: uninitialized local variable 'wc' used
Microsoft (R) Incremental Linker Version 9.00.21022.08
Copyright (C) Microsoft Corporation. All rights reserved.
/out:test.exe
test.obj
test.obj : error LNK2019: unresolved external symbol __imp__DefWindowProcA@16 referenced in function _WndProc@16
test.obj : error LNK2019: unresolved external symbol __imp__PostQuitMessage@4 referenced in function _WndProc@16
test.obj : error LNK2019: unresolved external symbol __imp__MessageBoxA@16 referenced in function _WndProc@16
test.obj : error LNK2019: unresolved external symbol __imp__DispatchMessageA@4 referenced in function _WinMain@16
test.obj : error LNK2019: unresolved external symbol __imp__TranslateMessage@4 referenced in function _WinMain@16
test.obj : error LNK2019: unresolved external symbol __imp__GetMessageA@16 referenced in function _WinMain@16
test.obj : error LNK2019: unresolved external symbol __imp__UpdateWindow@4 referenced in function _WinMain@16
test.obj : error LNK2019: unresolved external symbol __imp__ShowWindow@8 referenced in function _WinMain@16
test.obj : error LNK2019: unresolved external symbol __imp__CreateWindowExA@48 referenced in function _WinMain@16
test.obj : error LNK2019: unresolved external symbol __imp__RegisterClassExA@4 referenced in function _WinMain@16
test.obj : error LNK2019: unresolved external symbol __imp__LoadCursorA@8 referenced in function _WinMain@16
test.obj : error LNK2019: unresolved external symbol __imp__LoadIconA@8 referenced in function _WinMain@16
test.obj : error LNK2019: unresolved external symbol _SizeOf referenced in function _WinMain@16
test.exe : fatal error LNK1120: 13 unresolved externals
может что-то не так сделал?
компилирую из командной строки, студией пока не научился... :( я вообще недавно начал учить С, а студию пользуюсь только пару дней..
Код:
wc.hbrBackground =COLOR_WINDOW+1;
Вот это
Код:
wc.hbrBackground =(HBRUSH)GetStockObject(COLOR_WINDOW+1);
Попробуйте...
Это ты к чему? Ошибку линковки таким образом исправить никак нельзя...
2Belialh:
Во-первых, тот код, что ты запостил, не компилируется. В языке C нет оператора SizeOf, есть sizeof. Лучше копипастить код прямо из редактора, так ты экономишь время тех, кто тебе помогает.
Твоя программа подросла и начала использовать сторонние библиотеки. Посмотри описание функции CreateWindow(). В ней указано, что она требует линковки с библиотекой user32.lib. Соответственно строка для компиляции будет следующая:
cl code.cpp /link user32.lib
А вообще, пользуйся VS. Она создана для того, чтобы решать такие проблемы.
а как копипастить с редактора не очень понял... я код программы с Notepad'а копипастил... О_о