Текущий архив: 2005.10.02;
Скачать: CL | DM;
Вниз
Странная ошибка Найти похожие ветки
← →
Sphinx © (2005-08-25 18:13) [0]Уже сотни раз писал на API код создания окна...но тут споткнулся на ровном месте, не могу понять в чем ошибся...
Следующий код выдает AV на строкеCreateWindowEx
Причем проверил - в FPC 2.0; D7 и D2005...
AV выпадает везде...или у меня уже взгляд "замылился" и ошибки не вижу...или что ???program Project1;
{$R *.res}
uses
Windows,
Messages,
Direct3D9;
var
g_hWnd : THandle;
winClass : WNDCLASS;
uMsg : MSG;
g_pwndClass : PChar;
function WindowProc(ihwnd: THandle; uMsg: Longword; wParam: Longint; lParam: Longint): Longint;
begin
WindowProc := DefWindowProc(ihwnd, uMsg, wParam, lParam);
end;
procedure Init;
begin
end;
procedure ShutDown;
begin
end;
begin
ZeroMemory(@uMsg, SizeOf(MSG));
ZeroMemory(@winClass, SizeOf(WNDCLASS));
winClass.hInstance := HInstance;
g_pwndClass := "MY_WINDOW_CLASS";
with winClass do
begin
lpszClassName := g_pwndClass;
// cbSize := SizeOf(WNDCLASSEX);
style := CS_VREDRAW or CS_HREDRAW;
lpfnWndProc := @WindowProc;
// hInstance := HInstance;
hCursor := LoadCursor(0, IDC_ARROW);
hbrBackground := $000000;
lpszMenuName := nil;
cbClsExtra := 0;
cbWndExtra := 0;
end;
if (RegisterClass(winClass) = 0) then
Halt(0);
g_hWnd := CreateWindowEx(0,
"MY_WINDOW_CLASS",
"",
WS_OVERLAPPED,
10,
10,
640,
480,
0,
0,
winClass.hInstance,
nil);
if (g_hWnd = 0) then
Halt(0);
ShowWindow(g_hWnd, SW_SHOW);
UpdateWindow(g_hWnd);
Init;
while uMsg.message <> WM_QUIT do
begin
if PeekMessage(uMsg, 0, 0, 0, PM_REMOVE) then
begin
TranslateMessage(uMsg);
DispatchMessage(uMsg);
end
else
begin
end;
end;
ShutDown;
UnregisterClass(winClass.lpszClassName, winClass.hInstance);
end.
← →
alpet © (2005-08-25 18:19) [1]Пользоваться отладчиком надо. Ты проглядел stdcall в определении оконной процедуры, видать сотни раз приходилось использовать технологию Copy-Paste, вот и не отложилось в памяти :) Соответственно, при вызове CreateWindowEx первые сообщения, отправленные в нее вызовут непредсказуемые проблемы.
← →
Sphinx © (2005-08-25 18:23) [2]2 alpet ©
Блллллиииииннннннннннн !!!!
Не копипастил я...сам писал...
Огромное спасибо :)
З.Ы. этож надо на такой фигне погореть %)
Страницы: 1 вся ветка
Текущий архив: 2005.10.02;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.037 c