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

Ваш аккаунт

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

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

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

InitCommonControls() ругается.

20K
02 октября 2006 года
NetName
7 / / 02.10.2006
Совственно тема является вопросом.
Я в Си новичек. Посмотрите пожалуйста код:

Код:
///////////////////// MyWin.cpp ////////////////////////
#include "MyWin.h"
int MainProc (HWND, UINT, WPARAM, LPARAM);
union UNKNOWN{
    char lpBuffer;
    long dwBuffer;
}uBuffer;
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow) {
    InitCommonControls();
    DialogBoxParam(hInstance, (LPCTSTR)IDD_DIALOG1,0, (DLGPROC)MainProc,0);
    return 0;
}
MainProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
    switch (message){
        case WM_INITDIALOG:
            break;
        case WM_COMMAND:
            switch (wParam){
                case ID_OK:
                    uBuffer.dwBuffer=57;
                    MessageBox(0,&uBuffer.lpBuffer,0,0);
                    break;
                case ID_CANCEL:
                    MessageBox(0,"Cancel",0,0);
                    break;
            }
            break;
        case WM_CLOSE:
            EndDialog(hWnd,0);
            break;
    }
    return 0;
}
////////////////// MyWin.h //////////////////
#include <windows.h>
#include "resource.h"
#include <commctrl.h>
#include <iostream.h>

///////////////////// resource.h
#define IDD_DIALOG1                     101
#define ID_OK                           1001
#define ID_CANCEL                       1002
#define IDC_LIST1                       1012

// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE        102
#define _APS_NEXT_COMMAND_VALUE         40001
#define _APS_NEXT_CONTROL_VALUE         1013
#define _APS_NEXT_SYMED_VALUE           101
#endif
#endif

Данное творение компилиться на ура, линкуется с :
--------------------Configuration: MyWin - Win32 Debug--------------------
Linking...
myWin.obj : error LNK2001: unresolved external symbol __imp__InitCommonControls@0
Debug/MyWin.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
Creating browse info file...

MyWin.exe - 2 error(s), 0 warning(s)

и еще, я не попадаю при дебаге в процедуру обработки оконных сообщений. (VC++6.0).
Помогите пожалуйста!!!
334
02 октября 2006 года
HexEdit
809 / / 27.07.2006
А библиотека COMCTL32 подключена?
20K
02 октября 2006 года
NetName
7 / / 02.10.2006
Он ругается что библиотека не найдена, ее надо отдельно гдето взять?
.... все разобрался... в опциях проекта подключил.
20K
02 октября 2006 года
NetName
7 / / 02.10.2006
А что по поводу дебага оконной процедуры.... я не поподаю при трасировке... как это лечится?
334
02 октября 2006 года
HexEdit
809 / / 27.07.2006
А брейк пробовал ставить?
А как вызвать трассировкой.. Оконная функция вообще вызываеца системой... Если ты конечно ее явно гденить не вызываешь.
20K
02 октября 2006 года
NetName
7 / / 02.10.2006
брейк не лечит, я подумал что студия запускает приложение... типа "в своем пространстве" что позволяет замечательно дебажить (как VB)...
так это получается что я свою процедуру, чей адрес я передал в DialogBoxParam, по определению дебажить не могу?, если так то это огромное запад*о.
20K
02 октября 2006 года
NetName
7 / / 02.10.2006
отвечаю сам на предыдущий пост

http://www.rsdn.ru/article/vcpp/vcdebug-1.xml#EKHAC

но вопрос открытый
292
02 октября 2006 года
Matush
726 / / 14.01.2004
[quote=NetName]брейк не лечит[/quote]
Как так? Брейкпоинт верняково там сработает (если конечно процедура выполняется).
406
03 октября 2006 года
vitaly2003s
481 / / 27.07.2004
Все должно дебажится. Может у тебя текущяя релиз сборка а не дебаг?
398
04 октября 2006 года
Alexandoros
630 / / 21.10.2005
Дык по -умолчанию и в релизе не отключается дебуг инфо. Скорее всего запускает через контрол+Ф5.
406
04 октября 2006 года
vitaly2003s
481 / / 27.07.2004
[QUOTE=Alexandoros]Дык по -умолчанию и в релизе не отключается дебуг инфо. Скорее всего запускает через контрол+Ф5.[/QUOTE]
Ну и че толку от нее в релизе?
NetName
Короче поробуй вставь вместо break point такой код:
__asm int 3

если код этот выполняется то твое приложение обязательно прервется даже в релиз версии(правда трэйсить придется после такой остановки в релизе на ассемблере,а если в дебаге то в нормальном виде)
21K
05 октября 2006 года
kuzya_vl
5 / / 12.09.2006
Я вседа вызывал процедуру диалога так:
BOOL CALLBAK MainProc (HWND, UINT, WPARAM, LPARAM);
292
05 октября 2006 года
Matush
726 / / 14.01.2004
[quote=kuzya_vl]Я вседа вызывал процедуру диалога так:
BOOL CALLBAK MainProc (HWND, UINT, WPARAM, LPARAM);[/quote]

А я всегда так:

LRESULT CALLBACK MainProc (HWND, UINT, WPARAM, LPARAM) ;)
334
05 октября 2006 года
HexEdit
809 / / 27.07.2006
А есть разве есть разница? Всмысле на машинном уровне?
21K
06 октября 2006 года
kuzya_vl
5 / / 12.09.2006
Взял тот код который приводил в начале автор темы.
У меня беэ CALLBACK диалог вообще не вызывается!
О каких breakpoint-ах может внутри MainProc идти речь !!!
334
06 октября 2006 года
HexEdit
809 / / 27.07.2006
[QUOTE=kuzya_vl]
О каких breakpoint-ах может внутри MainProc идти речь !!!

[/QUOTE]
Что ты имеешь ввиду?
406
09 октября 2006 года
vitaly2003s
481 / / 27.07.2004
[QUOTE=kuzya_vl]Взял тот код который приводил в начале автор темы.
У меня беэ CALLBACK диалог вообще не вызывается!
О каких breakpoint-ах может внутри MainProc идти речь !!![/QUOTE]
Какая разница где в клиентском коде в данном случае MainProc будет вызван breakpoint. Он обязан если вызывается прервать выполнение последующих инструкций до возобновления со стороны пользователя.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог