Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

CreateWindowEx - fails under XP...

Рад приветствовать!

Как-то писал я уже, но нынче ситуация немного прояснилась.
Совершенно непонятно по каким причинам, но нижеследующий код не
работает на ХР (5.1 (SP 1), говорит, что на днях всё пропатчил),
под 98/2000 всё ОК.

Вот код:

...
If RegisterClass (WindowClass) = 0 then
begin
....
end;
MainWindow := CreateWindowEx(
WS_EX_TOPMOST,
AppName,
AppName,
WS_POPUP,
0,
0,
ScreenWidth,
ScreenHeight,
0,
0,
0,
nil
);
...

GetLastError после CreateWindowEx говорит следующее (код - 126):
"The specified module could not be found."

Вообще, насколько я понимаю, такое может вываливаться при загрузке
dll (LoadLibrary), но RegisterClass тоже из user32.dll, значит она
всё же загружена. Стал рыться в MSDN, там упоминалось, что подобное
может происходить, если библиотека грузится непосредственно из
директории, в имени которой содержится точка и при этом не
указывается расширение *.dll (LoadLibrary("C:\\MY.DLLs\\ABC")), но,
во-первых, CreateWindowEx всё ж вызывается, а в потроха её лезть не
имея под рукой dll, которая на той XP стоит толку мало. Во-вторых,
загрузила-то библиотеку, как я понимаю, уже сама ось при подготовке
к запуску, и если бы что-то не так должна были бы об этом сообщить
заранее.
Заметка из Knowledge Base "Why RegisterClass() and CreateWindow()
Fail" тоже ничего не прояснила, т.к. ни на один из симптомов там
упомянутых эта ситуация не похожа.
Может кто сталкивался, куда копать, что можно попытаться сделать?


Alles Gutes!

CU @ http://smuta.boom.ru

...In Code We Trust...
--
При желании, mailto:deniskravtso***@m*****.ru
Номер выпуска : 2633
Возраст листа : 178 (дней)
Количество подписчиков : 379
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/105918
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Thu, 18 Mar 2004 11:23:12 +0300 (#105918)

 

Ответы:

Здравствуйте !

Может, надо что то типа :

MainWindow := CreateWindowEx(
WS_EX_TOPMOST,
WindowClass,
AppName,
...

--
С уважением, Вахтуров Виктор.
Информационный сайт для программистов http://SoftMaker.com.ru
Номер выпуска : 2647
Возраст листа : 180 (дней)
Количество подписчиков : 377
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/107873
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Sat, 20 Mar 2004 11:21:08 +0300 (#107873)

 

Рад приветствовать, Victor!

Довелось мне Saturday, March 20, 2004 читать, следующее:

Не понял я что-то.
WindowClass типа WNDCLASS. А 2-ой параметр CreateWindowEx типа LPCTSTR. То
есть не инфа о приложении и пр., а строка содержащая название класса
окна (то же что и было передано в RegisterClass). Может я нечто не так
понял?

Alles Gutes!

CU @ http://smuta.boom.ru

...In Code We Trust...

Ответить   Sun, 21 Mar 2004 12:00:12 +0300 (#108604)

 

Здравствуйте !

Извиняюсь, блин, это меня переклинило что то.
Я что то напутал между MFC - шным AfxRegisterClass и API - шной
RegisterClass (она значение типа ATOM, вроде, возвращает).

То есть в поле lpszClassName структуры WNDCLASS заносится
то же самое AppName ? Гм...
Дикая мысль - может, AppName совпадает с именем какого нибудь
уже зарегистренного класса ?

--
С уважением, Вахтуров Виктор.
Информационный сайт для программистов http://SoftMaker.com.ru
Номер выпуска : 2656
Возраст листа : 181 (дней)
Количество подписчиков : 375
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/108821
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Sun, 21 Mar 2004 21:24:05 +0300 (#108821)

 

Рад приветствовать, Victor!

Довелось мне Sunday, March 21, 2004 читать, следующее:

Да ок, всё равно спасибо за помощь.

Вопрос разрешился.
Виной всему, ессно, кривые руки ;) , просто перенаворотил
всяких инициализационных проверок в WndProc и при определённых
обстоятельствах не вызывался DefWindowProc. Вот и возвращалоаь в
ответ на WM_NCCREATE/WM_CREATE чепуха (но в 98/00 такого ни разу не
происходило!). Спасибо!

Alles Gutes!

CU @ http://smuta.boom.ru

...In Code We Trust...

Ответить   Tue, 23 Mar 2004 12:48:04 +0300 (#110993)