Конференция "Прочее" » Вопрос по развертыванию [WinXP]
 
  • pushkin42 © (17.09.08 12:45) [0]
    Исходя из текста статьи
    http://www.delphikingdom.com/asp/viewitem.asp?catalogid=706

    я сделал все как там написано. Но приложение у меня не запускается - на Windows XP вылетает, на Server 2003 - просто не стартует.

    Быть может, кто-нибудь поделится опытом развертывания приложений на dbExpress на машины, где никогда не было Delphi?
  • Jeer © (17.09.08 12:49) [1]
    Стоит рассказать, что именно Вы используете из DBExpress, что именно сделали из рекомендованной ссылки.
    Бывает, в процессе рассказа приходит понимание.
  • Vlad Oshin © (17.09.08 12:52) [2]

    > на Windows XP вылетает

    с каким текстом?
  • Правильный$Вася (17.09.08 12:54) [3]

    >  поделится опытом развертывания приложений на dbExpress

    там и разворачивать нечего
    dbExpress-драйвер для твоей СУБД + клиент это СУБД
    ну,и твоя прога
    все!
  • pushkin42 © (17.09.08 12:57) [4]
    Используется SQLConnect, SQLDataSet - все.
    Вылетает безо всяких текстов - "сообщить microsoft об ошибке"
    По поводу ответа Васи не понял.
  • Правильный$Вася (17.09.08 13:09) [5]

    > Вылетает безо всяких текстов - "сообщить microsoft об ошибке"

    текст внутри

    > По поводу ответа Васи не понял.

    что именно не понял?
  • pushkin42 © (17.09.08 13:19) [6]
  • Vlad Oshin © (17.09.08 14:10) [7]
    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
    что в файлике?
  • pushkin42 © (17.09.08 14:38) [8]
    Файлик не создается. Вообще.
  • Jeer © (17.09.08 14:53) [9]
    Была у меня хрень, когда на некоторых XP-машинах приложение под D7 вылетало на фик. Не поборол, да и не особо...
    Просто переустановили XP.
  • pushkin42 © (17.09.08 14:55) [10]
    36 машин. Ни на одной кроме моей не установлен Delphi.
    Ни на одной из них, кроме моей, приложение не стартует.

    ЗЫ: Delphi 2009
  • Jeer © (17.09.08 15:05) [11]
    Ну так начни с пустой формы :)
  • pushkin42 © (17.09.08 15:06) [12]
    Самый лучший ответ :-D
    А если серьезно - почему тогда приложение, написанное на IBDataSet, работает с подложенной gds32.dll и не вылетает, а эта вылетает?
  • Jeer © (17.09.08 15:09) [13]
    Да кто, кроме тебя же разобрать может ?
    И вообще, совместимость сейчас не в фаворе :(
  • Vlad Oshin © (17.09.08 15:15) [14]
    а в проекте если, что получим?

     try
       WriteToLog('START');
       Application.Initialize;
       Application.CreateForm(TfrmMain, frmMain);
       Application.Run;
       WriteToLog('NumeroQuattro END');
     except
       on E:Exception do WriteToLog('-= error: '+E.message);
     end;
  • Правильный$Вася (17.09.08 15:28) [15]
    есть подозрение на midas.dll неверной версии
  • pushkin42 © (17.09.08 15:28) [16]
    Vlad, 1 строчка, код ошибки 0 (ошибки типа нету)
  • pushkin42 © (17.09.08 15:29) [17]
    midas.dll и прочие библиотеки брал из %BDSDIR%\bin
  • Vlad Oshin © (17.09.08 15:38) [18]
    а если uses MidasLib написать везде?
  • Vlad Oshin © (17.09.08 15:46) [19]
    http://rouse.drkb.ru/tmp/exceptions.zip
    попробуй это выдрать/вставить, может чего прояснится
  • Правильный$Вася (17.09.08 15:50) [20]

    >  на Server 2003 - просто не стартует

    приложение не имеет цифровой подписи, а в политике стоит запрет запуска таких
  • pushkin42 © (17.09.08 15:54) [21]
    Вася, я в своих серверах наверное лучше разбираюсь. QIP даже запускается.
    Vlad, попробую...  uses MidasLib итак написано.
  • Правильный$Вася (17.09.08 15:56) [22]

    >  я в своих серверах наверное лучше разбираюсь

    тогда разберись, что в системном журнале появляется после запуска (простите, попытки) твоего приложения
    и нафига тогда тебе midas.dll, если уже Midaslib используется? или методом тыка?
  • pushkin42 © (17.09.08 15:57) [23]
    [DCC Error] JclConsole.pas(1244): E2010 Incompatible types: 'Char' and 'AnsiChar'

    и куча варнингов. Т.е. не помогло.
    \\
    ЗЫ: Использовать сторонние компоненты крайне нежелательно... а JVCL вообще не компилируется на Tiburon'е
  • pushkin42 © (17.09.08 15:59) [24]
    В журнале событий тоже самое, что во вложениях выше, только "бантик сбоку".

    Просто я пробовал оба варианта. Оба не работают.
  • pushkin42 © (17.09.08 21:04) [25]
    UP
    Проблема не решена :(
 
Конференция "Прочее" » Вопрос по развертыванию [WinXP]
Есть новые Нет новых   [134442   +15][b:0][p:0.001]