Witam!
Dzisiaj doszedłem do wniosku, ze przesiadka z Dev-C++ na MS Visual C++ mnie nie ominie ;). Zaczalem od napisania prostego programiku w WinApi, a oto on:
#include <string>
#include <windows.h>
std::string nazwaklasy="KrukersProg";
LRESULT CALLBACK WindowProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLince,int nShowCmd)
{
WNDCLASSEX wc;
ZeroMemory(&wc,sizeof(wc));
wc.cbSize = sizeof(wc);
wc.hbrBackground = (HBRUSH)COLOR_WINDOW;
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
wc.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wc.hIconSm = LoadIcon(NULL,IDI_APPLICATION);
wc.hInstance = hInstance;
wc.lpfnWndProc = WindowProc;
wc.lpszClassName = nazwaklasy.c_str();
RegisterClassEx(&wc);
HWND hWnd;
hWnd=CreateWindowEx(NULL,nazwaklasy.c_str(),"To już chyba drugi program ;)",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,
CW_USEDEFAULT,CW_USEDEFAULT,
HWND_DESKTOP,NULL,hInstance,NULL);
ShowWindow(hWnd,nShowCmd);
MSG Msg;
while(GetMessage(&Msg,NULL,0,0))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return 0;
}
LRESULT CALLBACK WindowProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch(uMsg)
{
case WM_CLOSE:
int odp;
odp=MessageBox(hwnd,"Zamknąć program?","Zamykanie...",MB_YESNO|MB_ICONQUESTION);
if(odp==IDYES)break; else return 0;
break;
case WM_QUIT:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
jak widać to zwykły szkielet programu w WinApi i teraz: gdy kompiluje go pod Dev-C++ wszystko gra, a gdy skompiluje go pod VC++ a nastepnie uruchomie i zamkne to po nacisnieciu Ctrl+Alt+Del na liscie programow pozostaje nazwa pliku *.exe tego programu.
Niby problem banalny a niewiem jak sie go pozbyć...
Z gory THX za ew. odpowiedzi :)