Debugowanie programu winapi [message #1067379] |
Mon, 08 July 2013 13:17 |
Piotr Siupa Messages: 4 Registered: October 2012 |
Junior Member |
|
|
Witam,
Uczę się obsługiwać wersję eclipse dla c++. Napisałem prosty program w winapi i próbuję go debugować. Niestety program nie zatrzymuje się na breakpointach. Nie mam tego problemu w programach konsolowych.
Próbowałem nawet w jednym projekcie na zmianę wklejać do pliku kod programu konsolowego i winapi. Debugowanie pierwszego idzie bez problemu, a kiedy wkleję drugi kod, breakpointy przestają działać (tworzę nowe, nie chodzi o te do poprzedniego kodu).
Poza tym program wykonuje się poprawnie.
Zmieniłem wartość Debug Configuratoins->Debbuger->Stop on startup na WinMain. (Dzięki temu zniknął komunikat o braku procedury main w pliku.) Mimo to na wyjściu debugera pojawia się komunikat 'Function "WinMain" not defined.'
Kompiluje program przy pomocy mingw.
Dodanie do opcji kompilatora flagi -mwindows nic nie zmienia.
Na wszelki wypadek wrzucę kod programu.
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
MessageBox(NULL, "Hello world!", "Hello", 0);
return 0;
}
Z góry dziękuję za odpowiedź
-------
EDYCJA
-------
Udało mi się samemu częściowo rozwiązać problem.
Należy:
- odzanczyć "Debug configuration->Debugger->Stop on startup at"
- zmienić "Debug configuration->Debugger->GDB command set" na "Standatd(Windows)"
- kliknąć "odzanczyć "Debug configuration->Common->Select other..."(na dole) i wybrać "Standart create process launcher"
Można też utworzyć w katalogu głównym projektu pusty plik ".gdbinit", co pozwoli pozbyc się komunikatu o jego braku.
Mam jednak problem z opcją "step over", która zatrzymuje program podczas wykonywania funkcji systemowych (np. MessageBox) i nie pozwala go wznowić. (Można jedynie zakończyć jego pracę.)
[Updated on: Sat, 13 July 2013 22:18] Report message to a moderator
|
|
|
Powered by
FUDForum. Page generated in 0.04357 seconds