g0khan
09/06/2008, 11:54
Oncelikle selamlar herkese.
#include <windows.h>
BOOL APIENTRY DllMain (HINSTANCE hInst /* Library instance handle. */ ,
DWORD reason /* Reason this function is being called. */ ,
LPVOID reserved /* Not used. */ )
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
MessageBox(NULL, "calisti", "calisti", 0);
break;
}
return TRUE;
}
bu sekilde ana programdan calıstırdıgımda mesajı alabiliorum fakat bu msj yerine pencere prosedürü nasıl olustururum. Yardımcı olursanız sevinirim :)
#include <windows.h>
BOOL APIENTRY DllMain (HINSTANCE hInst /* Library instance handle. */ ,
DWORD reason /* Reason this function is being called. */ ,
LPVOID reserved /* Not used. */ )
{
if(reason=DLL_PROCESS_ATACH)
{
//PENCEREYİ CALISTIRCAK KOD
}
return TRUE;
}
yada
#include <windows.h>
BOOL APIENTRY DllMain (HINSTANCE hInst /* Library instance handle. */ ,
DWORD reason /* Reason this function is being called. */ ,
LPVOID reserved /* Not used. */ )
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
//PENCEREYİ CALISTIRCAK KOD
break;
}
return TRUE;
}
Aşağıdaki kodu yazdığımda pencere olusturalamadı diye hata veriyor.
#include <windows.h>
char szPencCins[]="BenimPencerem";
int nShowCmd;
LRESULT CALLBACK PenPros(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInst,HINSTANCE hPrevInst,LPSTR lpCmd,int nShowCmd)
{
WNDCLASS x; //pencere tanım bilgileri
x.style=CS_HREDRAW|CS_VREDRAW; //yatay ve dikey boyut değişirse tekrar çiz
x.lpfnWndProc=PenPros; //pencere prosedürü
x.cbClsExtra=0;
x.cbWndExtra=0;
x.hInstance=hInst;
x.hIcon=LoadIcon(NULL,IDI_APPLICATION); //standart windows ikonu
x.hCursor=LoadCursor(NULL,IDC_ARROW); //standart fare işaretçisi
x.hbrBackground=(HBRUSH)COLOR_WINDOW; //pencere rengi kullan
x.lpszMenuName=NULL; //menü yok
x.lpszClassName=szPencCins; //pencere cins
return 0;
}
BOOL APIENTRY DllMain (HINSTANCE hInst /* Library instance handle. */ ,
DWORD reason /* Reason this function is being called. */ ,
LPVOID reserved /* Not used. */ )
{
if( reason==DLL_PROCESS_ATTACH) {
HWND hWnd=CreateWindow(szPencCins,"İlk Pencerem",WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,300,
300,NULL,NULL,hInst,NULL);
if(!hWnd)
{
MessageBox(NULL,"Pencere yaratılamadı","Hata",MB_ICONSTOP);
return 0;
};
ShowWindow(hWnd,nShowCmd); //pencereyi ekranda göster
MSG t; //mesaj verisi için değişken
while(GetMessage(&t,hWnd,0,0)) //mesaj kuyruğu doluysa mesaj al
{
TranslateMessage(&t); //klavye mesajlarını çevir
DispatchMessage(&t); //pencere prosedürüne gönder
};
}
return TRUE;
}
#include <windows.h>
BOOL APIENTRY DllMain (HINSTANCE hInst /* Library instance handle. */ ,
DWORD reason /* Reason this function is being called. */ ,
LPVOID reserved /* Not used. */ )
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
MessageBox(NULL, "calisti", "calisti", 0);
break;
}
return TRUE;
}
bu sekilde ana programdan calıstırdıgımda mesajı alabiliorum fakat bu msj yerine pencere prosedürü nasıl olustururum. Yardımcı olursanız sevinirim :)
#include <windows.h>
BOOL APIENTRY DllMain (HINSTANCE hInst /* Library instance handle. */ ,
DWORD reason /* Reason this function is being called. */ ,
LPVOID reserved /* Not used. */ )
{
if(reason=DLL_PROCESS_ATACH)
{
//PENCEREYİ CALISTIRCAK KOD
}
return TRUE;
}
yada
#include <windows.h>
BOOL APIENTRY DllMain (HINSTANCE hInst /* Library instance handle. */ ,
DWORD reason /* Reason this function is being called. */ ,
LPVOID reserved /* Not used. */ )
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
//PENCEREYİ CALISTIRCAK KOD
break;
}
return TRUE;
}
Aşağıdaki kodu yazdığımda pencere olusturalamadı diye hata veriyor.
#include <windows.h>
char szPencCins[]="BenimPencerem";
int nShowCmd;
LRESULT CALLBACK PenPros(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInst,HINSTANCE hPrevInst,LPSTR lpCmd,int nShowCmd)
{
WNDCLASS x; //pencere tanım bilgileri
x.style=CS_HREDRAW|CS_VREDRAW; //yatay ve dikey boyut değişirse tekrar çiz
x.lpfnWndProc=PenPros; //pencere prosedürü
x.cbClsExtra=0;
x.cbWndExtra=0;
x.hInstance=hInst;
x.hIcon=LoadIcon(NULL,IDI_APPLICATION); //standart windows ikonu
x.hCursor=LoadCursor(NULL,IDC_ARROW); //standart fare işaretçisi
x.hbrBackground=(HBRUSH)COLOR_WINDOW; //pencere rengi kullan
x.lpszMenuName=NULL; //menü yok
x.lpszClassName=szPencCins; //pencere cins
return 0;
}
BOOL APIENTRY DllMain (HINSTANCE hInst /* Library instance handle. */ ,
DWORD reason /* Reason this function is being called. */ ,
LPVOID reserved /* Not used. */ )
{
if( reason==DLL_PROCESS_ATTACH) {
HWND hWnd=CreateWindow(szPencCins,"İlk Pencerem",WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,300,
300,NULL,NULL,hInst,NULL);
if(!hWnd)
{
MessageBox(NULL,"Pencere yaratılamadı","Hata",MB_ICONSTOP);
return 0;
};
ShowWindow(hWnd,nShowCmd); //pencereyi ekranda göster
MSG t; //mesaj verisi için değişken
while(GetMessage(&t,hWnd,0,0)) //mesaj kuyruğu doluysa mesaj al
{
TranslateMessage(&t); //klavye mesajlarını çevir
DispatchMessage(&t); //pencere prosedürüne gönder
};
}
return TRUE;
}