Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как переделать или что добавить в прогу, чтобы она работала на 2000 проф. и не требовала ntdll.dll, исходники есть. [D5, Win95/98, Win2k]


Filat ©   (2002-01-09 13:08:00) 

Привет всем. Собственно сабж, заранее благодарен.
P.S. Программу писал на вин98 и работает, но теперь надо подправить.:))


Filat   (2002-01-10 16:41:00) [1]

О! спасибо кое что начал понимать. Ситуация следующая, сначала появляется RxLoginDialog, Enter, и при загрузке главной формы выдаётся сообщение. Вот код:

procedure TFrm1.FormStorage1RestorePlacement(Sender: TObject);
begin
FormStorage1.IniFile.ReadString("Form","","");
end;
procedure TFrm1.FormStorage1SavePlacement(Sender: TObject);
begin
FormStorage1.IniFile.WriteString("Form","","");
end;
procedure TFrm1.SpeedItem5Click(Sender: TObject);
begin
Frm1.Close;
end;
procedure TFrm1.AppMinimize(Sender: TObject);
begin
{$IFDEF WIN32}
if NewStyleControls then ShowWindow(Application.Handle, SW_HIDE);
{$ENDIF}
end;
procedure TFrm1.RxTrayIcon1DblClick(Sender: TObject);
begin
Application.Restore;
Application.BringToFront;
end;
procedure TFrm1.WMSYSCOMMAND(var msg: TMessage);
begin
inherited;
if (Msg.wParam=SC_MINIMIZE) then Hide(Self);
end;
procedure TFrm1.HideMainForm;
begin
Application.ShowMainForm := False;
ShowWindow(Application.Handle, SW_HIDE);
ShowWindow(Application.MainForm.Handle, SW_HIDE);
end;
procedure TFrm1.Hide(Sender: TObject);
begin
HideMainForm;
end;


limon   (2002-01-10 11:28:00) [2]

ntdll.dll программой напрямую не используется!
Подключается по мере надобности из kernel, user, gdi и прочих.
Эта длл реализует особенности ядра NT. Вышеназванные интерфейсные длл-ки перенаправляют специфические вызовы в ntdll, часто без анализа данных.
Описанная ошибка - не что иное, как прямое указание на горбатый вызов функции ядра системы. Некоторые ф-и в 98 и NT имеют разный синтаксис, либо разное значение параметров.
Так что, проверяйте внимательно код, желательно через отладчик.


KSergey   (2002-01-10 10:32:00) [3]

Для начала переведите дял себя текст сообщения об ошибке. Ведь в нем говорится не о надобности в библиотеке (она-то как раз находится успешно) а о том, что при выполнении какого-то кода из нее произошло исключение "Доступ запрещен по такому-то адресу" (неверный указатель).
Штука вероятнее всего в том, что ошибка то у вас в коде была всегда, вот только Win98 ее пропускала, а WinNT, будучи более "придирчивой" ко всяким пакостям со стороны программ, ее просто так пропускать уже не желает.
Так что или разбирайтесь сами в вашем коде иницилизации (что происходит у вас при старте программы), либо код инициализации сюда. Может кто и подскажет.
К стати, возможно кривость в дополнительных компонента, если таковыми пользуетесь.


Filat   (2002-01-10 10:17:00) [4]

А что писать то? При компиляции ошибок не выдаёт, а при запуске из Delphi5 появляется ошибка, в окне просмотра CPU указывает на код:77F83F39 881c01 mov [ecx+eax],bl Там ещё есть окна со значениями переменных (точно не знаю, т.к. никогда надобности не было с этим работать) кое-что подсвечено крассным цветом. Вот такие дела.


Tosov   (2002-01-09 23:21:00) [5]

Что делать?
Вероятно надо найти где ругается и поделиться кодом


Filat   (2002-01-09 19:43:00) [6]

Я написал программу под вин 98. Все здорово, она работает. Теперь поставил себе 2000 проф. и при запуске программа говорит
Access violftion at adress 77F83F39 in module ntdll.dll. Write of adress 00404175. Нажимаю ОК запускается главная форма. При выходе ещё пару раз орет и выходит. Что делать?


Wizard_Ex   (2002-01-09 17:13:00) [7]

Поподробней плиз


Tosov   (2002-01-09 16:26:00) [8]

???


Наверх

Титульная страница Поиск, карта сайта Написать письмо