Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Компиляция 
V
    Опции темы
toxx
Дата 30.4.2009, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 653
Регистрация: 4.3.2009
Где: НН

Репутация: нет
Всего: 13



Начал читать книгу win32 api эффективная разработка приложений, на 2м способе вывода хэллоу ворлда ошибка компиляции(( Вариант 100% верный т.к. взят от приложений к книге.Как я почитал тут темы, проблема в настройке Microsoft Visual C++ 6.0. Подскажите что настроить верно.Спасибо.

Код

// Hello1.cpp
#include <windows.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
///////////////////////////////////////////////////////////////////////////////////////////////
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    HWND hMainWnd;  
    char szClassName[] = "MyClass";
    MSG msg;
    WNDCLASSEX wc;
    
    // Заполняем структуру класса окна
    wc.cbSize        = sizeof(wc);        
    wc.style         = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc   = WndProc;
    wc.cbClsExtra     = 0;
    wc.cbWndExtra    = 0;
    wc.hInstance     = hInstance;
    wc.hIcon         = LoadIcon(NULL, IDI_APPLICATION);
    wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
    wc.lpszMenuName  = NULL;
    wc.lpszClassName = szClassName;
    wc.hIconSm       = LoadIcon(NULL, IDI_APPLICATION);

    // Регистрируем класс окна
    if (!RegisterClassEx(&wc)) {
        MessageBox(NULL, "Cannot register class", "Error", MB_OK);
        return 0;
    }
    
    // Создаем основное окно приложения
    hMainWnd = CreateWindow( 
        szClassName, "A Hello1 Application", WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, 0, CW_USEDEFAULT, 0,
        (HWND)NULL, (HMENU)NULL,
        (HINSTANCE)hInstance, NULL
    );
    
    if (!hMainWnd) {
        MessageBox(NULL, "Cannot create main window", "Error", MB_OK);
        return 0;
    }

    // Показываем наше окно
    ShowWindow(hMainWnd, nCmdShow); 
//    UpdateWindow(hMainWnd);

    // Выполняем цикл обработки сообщений до закрытия приложения
    while (GetMessage(&msg, NULL, 0, 0))  {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    return msg.wParam;
}
///////////////////////////////////////////////////////////////////////////////////////////////
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    HDC hDC;
    PAINTSTRUCT ps;
    RECT rect;

    switch (msg)
    {
    case WM_PAINT:
        hDC = BeginPaint(hWnd, &ps);

        GetClientRect(hWnd, &rect);
        DrawText(hDC, "Hello, World!", -1, &rect,
            DT_SINGLELINE | DT_CENTER | DT_VCENTER );
        
        EndPaint(hWnd, &ps);
        return 0;

    case WM_CLOSE:
        DestroyWindow(hWnd);
        return 0;

    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;

    default:
        return DefWindowProc(hWnd, msg, wParam, lParam);
    }

    return 0;
}



Лог ошибок

Код

Build Log

--------------------Configuration: Hello1 - Win32 Debug--------------------

Command Lines
Creating temporary file "D:\DOCUME~1\toxic\LOCALS~1\Temp\RSP15A.tmp" with contents
[
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:yes /pdb:"Debug/Hello1.pdb" /debug /machine:I386 /out:"Debug/Hello1.exe" /pdbtype:sept 
".\Debug\Hello1.obj"
]
Creating command line "link.exe @D:\DOCUME~1\toxic\LOCALS~1\Temp\RSP15A.tmp"
Output Window
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/Hello1.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.



Results
Hello1.exe - 2 error(s), 0 warning(s)




Это сообщение отредактировал(а) toxx - 30.4.2009, 15:21
PM MAIL   Вверх
ilyuha
Дата 30.4.2009, 15:45 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 10.7.2007

Репутация: нет
Всего: нет



в свойствах проекта параметр SubSystem поменяйте  c Console  на Windows
PM MAIL   Вверх
yeputons
Дата 30.4.2009, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 1.4.2009
Где: Санкт-Петербург

Репутация: 1
Всего: 5



ilyuha, действительно шустрый) я уже ответить хотел)

Это сообщение отредактировал(а) yeputons - 30.4.2009, 15:55
PM MAIL ICQ Skype   Вверх
toxx
Дата 30.4.2009, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 653
Регистрация: 4.3.2009
Где: НН

Репутация: нет
Всего: 13



yeputons,ilyuha

Блин...уже минут 20 пытаюсь найти этот параметр...в упор не вижу где его поставить, все менюшки пересмотрел по 3 раза.

Мдее проблема была в character set вместо use unicode надо было not set прописать ### ито я сделал это только в MV 9.0 

Это сообщение отредактировал(а) toxx - 30.4.2009, 16:19
PM MAIL   Вверх
ilyuha
Дата 30.4.2009, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 10.7.2007

Репутация: нет
Всего: нет



Для MSVS2005:
Project -> Properties -> Configuration Properties -> Linking -> System
PM MAIL   Вверх
azesmcar
Дата 30.4.2009, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 5
Всего: 211



user posted image
PM   Вверх
toxx
Дата 30.4.2009, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 653
Регистрация: 4.3.2009
Где: НН

Репутация: нет
Всего: 13



user posted image

Спасибо за наглядность скрина=)
Всё поменял.

Это сообщение отредактировал(а) toxx - 30.4.2009, 16:44
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0492 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.