-
Исходя из текста статьи http://www.delphikingdom.com/asp/viewitem.asp?catalogid=706я сделал все как там написано. Но приложение у меня не запускается - на Windows XP вылетает, на Server 2003 - просто не стартует. Быть может, кто-нибудь поделится опытом развертывания приложений на dbExpress на машины, где никогда не было Delphi?
-
Стоит рассказать, что именно Вы используете из DBExpress, что именно сделали из рекомендованной ссылки. Бывает, в процессе рассказа приходит понимание.
-
> на Windows XP вылетает
с каким текстом?
-
> поделится опытом развертывания приложений на dbExpress
там и разворачивать нечего dbExpress-драйвер для твоей СУБД + клиент это СУБД ну,и твоя прога все!
-
Используется SQLConnect, SQLDataSet - все. Вылетает безо всяких текстов - "сообщить microsoft об ошибке" По поводу ответа Васи не понял.
-
> Вылетает безо всяких текстов - "сообщить microsoft об ошибке"
текст внутри
> По поводу ответа Васи не понял.
что именно не понял?
-
-
ApplicationEvents на форму, onException
procedure TfrmMain.ApplicationEvents1Exception(Sender: TObject; E: Exception); var c:tComponent; s:string; p,p2:pointer; buf:array[1..100] of byte; j,i:integer;
procedure WriteToLog(const StrToLog:string); var f:textfile; sTmp:string; begin if ProtocolMode=0 then exit; try sTmp:=ChangeFileExt(ExtractFileName(ParamStr(0)),'.log'); assignfile(f,sTmp); if FileExists(sTmp) then Reset(f) else ReWrite(f); Append(f); WriteLn(f,'DateTime: '+DateTimeToStr(now)+' '+StrToLog);//+' '+ExtractFileName(GetModuleFileNameStr(Hinstance))); Flush(f); CloseFile(f); except end; end;
begin c:=nil; s:=#13#10; p2:=addr(buf); p:=ExceptAddr; CopyMemory(p2,p,100); s:=s+'Exception at '+Format('%p',[ExceptAddr])+#13#10; s:=s+'первые 100 байт по этому адресу:'+#13#10; for j := 0 to 9 do begin for I := 1 to 10 do s:=s+inttohex(buf[i+j*10],2)+' '; s:=s+#13#10; end;
s:=s+'Sender: '+Sender.ClassName; if (sender is tComponent) then c:=sender as tComponent; while c.Owner is tComponent do begin s:=s+' размер в памяти: '+inttostr(c.InstanceSize)+#13#10; s:=s+'владелец: '+c.owner.ClassName; c:=c.Owner; end; s:=s+' размер в памяти: '+inttostr(c.InstanceSize)+#13#10; s:=s+'КлассОшибки:'+e.ClassName+#13#10+'ТекстОшибки:'+e.Message+#13#10; WriteToLog(s);
end;
запускать под XP что в файлике?
-
Файлик не создается. Вообще.
-
Была у меня хрень, когда на некоторых XP-машинах приложение под D7 вылетало на фик. Не поборол, да и не особо... Просто переустановили XP.
-
36 машин. Ни на одной кроме моей не установлен Delphi. Ни на одной из них, кроме моей, приложение не стартует.
ЗЫ: Delphi 2009
-
Ну так начни с пустой формы :)
-
Самый лучший ответ :-D А если серьезно - почему тогда приложение, написанное на IBDataSet, работает с подложенной gds32.dll и не вылетает, а эта вылетает?
-
Да кто, кроме тебя же разобрать может ? И вообще, совместимость сейчас не в фаворе :(
-
а в проекте если, что получим?
try WriteToLog('START'); Application.Initialize; Application.CreateForm(TfrmMain, frmMain); Application.Run; WriteToLog('NumeroQuattro END'); except on E:Exception do WriteToLog('-= error: '+E.message); end;
-
есть подозрение на midas.dll неверной версии
-
Vlad, 1 строчка, код ошибки 0 (ошибки типа нету)
-
midas.dll и прочие библиотеки брал из %BDSDIR%\bin
-
а если uses MidasLib написать везде?
-
|