Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Visual Studio 2008. повредился PATH

26K
13 июня 2008 года
Belialh
18 / / 29.12.2007
Здравствуйте. я использую Visual Studio 2008. НО однажды.. при установке студии PATH подправился, так чтоб там были пути к либам и т.д... ;)
но вот.. однажды мой PATH повредился... то, что помнил - я восстановил, но все не помню... пожалуйста, подскажите, что должно быть там
или может есть какая-то возможность восстановить PATH по-другому? :(
уже переустанавливал студию, да ток почему-то не помогло :(...

компилирую вот такую программку (я не уверен, что она должна работать.. а вообщк пробую написать окошко ):

Код:
#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;
}


и вижу вот такие ошибки:

Код:
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


может что-то не так сделал?

компилирую из командной строки, студией пока не научился... :( я вообще недавно начал учить С, а студию пользуюсь только пару дней..
1.6K
13 июня 2008 года
Shtirlitz
145 / / 31.07.2006
Вместо
 
Код:
wc.hbrBackground =COLOR_WINDOW+1;

Вот это
 
Код:
wc.hbrBackground =(HBRUSH)GetStockObject(COLOR_WINDOW+1);

Попробуйте...
562
13 июня 2008 года
tarekon
175 / / 19.08.2003
2Shtirlitz:
Это ты к чему? Ошибку линковки таким образом исправить никак нельзя...

2Belialh:
Во-первых, тот код, что ты запостил, не компилируется. В языке C нет оператора SizeOf, есть sizeof. Лучше копипастить код прямо из редактора, так ты экономишь время тех, кто тебе помогает.

Твоя программа подросла и начала использовать сторонние библиотеки. Посмотри описание функции CreateWindow(). В ней указано, что она требует линковки с библиотекой user32.lib. Соответственно строка для компиляции будет следующая:

cl code.cpp /link user32.lib

А вообще, пользуйся VS. Она создана для того, чтобы решать такие проблемы.
26K
14 июня 2008 года
Belialh
18 / / 29.12.2007
спасибо огромное...!!
а как копипастить с редактора не очень понял... я код программы с Notepad'а копипастил... О_о
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог