AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Vista: Turbopascal startet Win32 Exe nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Vista: Turbopascal startet Win32 Exe nicht

Ein Thema von MacGuyver · begonnen am 22. Nov 2008 · letzter Beitrag vom 22. Nov 2008
Antwort Antwort
Benutzerbild von MacGuyver
MacGuyver

Registriert seit: 9. Sep 2003
Ort: Wildeshausen
293 Beiträge
 
Turbo Delphi für Win32
 
#1

Vista: Turbopascal startet Win32 Exe nicht

  Alt 22. Nov 2008, 11:36
Moin Leute

Ich habe schon ein bisschen gesucht und nichts gefunden. Von meinem Programm in Turbopascal aus starte ich eine Delphi-Applikation durch. Unter Win98 benutze ich eine etwas andere Konstellation als unter XP. Es funktioniert unter den beiden Systemen einwandfrei. Bloß unter Vista geht das nicht. Von einer Konsole aus kann ich das Delphi-Programm starten.

Hat jemand damit Erfahrungen gesammelt?

Wer ärgert sich noch mit Borland- oder Turbopascal rum? Es gibt bestimmt noch einige Leidensgenossen, die eine alte Anwendung weiter pflegen müssen.

Stefan
Englisch eine Weltsprache? Zu kompliziert und der nahe Osten würde Englisch als Pflichtweltsprache nicht akzeptieren.
IDO wäre genau das Richtige: http://forum.idolinguo.de/index.php oder www.idolinguo.de
  Mit Zitat antworten Zitat
BloodySmartie
(Gast)

n/a Beiträge
 
#2

Re: Vista: Turbopascal startet Win32 Exe nicht

  Alt 22. Nov 2008, 12:35
Was passiert denn wenn Du versuchst, das Delphiprogramm zu starten? Überhaupt nichts? Oder gibts ne Fehlermeldung?

Möglicherweise hat Dein TP-Programm ungenügende Rechte unter Vista.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Vista: Turbopascal startet Win32 Exe nicht

  Alt 22. Nov 2008, 12:38
Evtl. wurde unter Vista die Konstellation unterbunden, dass 16-bittige Programme 32-bittige starten dürfen. Allerdings reine Vermutung, ich habe kein Vista und kann das deshalb nicht nachvollziehen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Oreaden

Registriert seit: 10. Nov 2008
60 Beiträge
 
#4

Re: Vista: Turbopascal startet Win32 Exe nicht

  Alt 22. Nov 2008, 13:24
Zitat von MacGuyver:
Wer ärgert sich noch mit Borland- oder Turbopascal rum?
Hallo MacGuyver,

das Orakel ist etwas ratlos, es weiss nicht, was Turbo Pascal dafür kann, wenn MicroSoft ihre Exe Formate nicht mehr unterstützt.

Ansonsten was wäre dagegen einzuwenden, das TP Programm unter Delphi zu Kompilieren, und das mit dem 32 Bit Kompiler. Dann sollte das doch gehen.

Schöne Grüße
aus Delphi
  Mit Zitat antworten Zitat
Benutzerbild von MacGuyver
MacGuyver

Registriert seit: 9. Sep 2003
Ort: Wildeshausen
293 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Vista: Turbopascal startet Win32 Exe nicht

  Alt 22. Nov 2008, 14:54
Es passiert einfach nichts. Weder eine Meldung noch eine Fehlercode von der Delphi-Anwendung.

Zitat:
Ansonsten was wäre dagegen einzuwenden, das TP Programm unter Delphi zu Kompilieren, und das mit dem 32 Bit Kompiler. Dann sollte das doch gehen.


Das geht?
Englisch eine Weltsprache? Zu kompliziert und der nahe Osten würde Englisch als Pflichtweltsprache nicht akzeptieren.
IDO wäre genau das Richtige: http://forum.idolinguo.de/index.php oder www.idolinguo.de
  Mit Zitat antworten Zitat
Benutzerbild von MacGuyver
MacGuyver

Registriert seit: 9. Sep 2003
Ort: Wildeshausen
293 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Vista: Turbopascal startet Win32 Exe nicht

  Alt 22. Nov 2008, 15:35
Ah, ich habe eine Kleinigkeit herausgefunden: Ich öffne die Windowsanwendung mittels FreeHeapAndExec.

Delphi-Quellcode:
Function FreeHeapAndExec( Command : String;
                          Params : String):Word;
Var
  lF : Text;
  lTimeOut : LongInt;
  OldHeapEnd,
  NewHeapEnd : Word;
  Error : Integer;
  lGetError : Boolean;

Begin
  Error:=0;
  If MemAvail<$1000 then
    Error:=8;
  If Error=0 then Begin
    {$IfDef MsDos}
    NewHeapEnd:=Seg(HeapPtr^)-PrefixSeg;
    OldHeapEnd:=Seg(HeapEnd^)-PrefixSeg;
    asm
      mov ah,4Ah
      mov bx,NewHeapEnd
      mov es,PrefixSeg
      Int 21h
      jnc @EXIT
      mov Error,ax
      @EXIT:
    End;
    If Error=0 then Begin
    {$EndIf MsDos}
      lGetError:=Pos(' DOSERROR ',' ' + UpStr(Params) + ' ') > 0;
      if lGetError then
        EraseFile(ExtractFileDir(Command) + 'DosError.Dat');
      if Pos('CONGDI',UpStr(Params)) > 0 then
        Message('vor');
      SwapVectors;
      Exec(Command,Params);
      SwapVectors;
      if Pos('CONGDI',UpStr(Params)) > 0 then
        Message('nach');
      if lGetError and (DosError = 0) then
      begin
        lTimeOut:=Ticks + 86{5 Sekunden};
        while not FileExists(ExtractFileDir(Command) + 'DosError.Dat')
          and (Ticks < lTimeOut) do
            Delay(1000);
        Assign(lF,ExtractFileDir(Command) + 'DosError.Dat');
        Reset(lF);
        If IoResult = 0 then
        begin
          ReadLn(lF,Error);
          if IoResult = 0 then ;
        end;
        Close(lF);
        if IoResult = 0 then ;
      end;
    {$IfDef MsDos}
      asm
        mov ah,4Ah
        mov bx,OldHeapEnd
        mov es,PrefixSeg
        Int 21h
        jnc @EXIT
        mov Error,ax
        @EXIT:
      End;
    End;
    {$Else MsDos}
      if Error = 0 then
        Error := DosError;
    {$EndIf MsDos}
  End;
  FreeHeapAndExec:=Error;
End;
Es klappt bei leerem Heapspeicher, später nicht mehr. Dann wird der Fehler in meiner Anwendung liegen.
Englisch eine Weltsprache? Zu kompliziert und der nahe Osten würde Englisch als Pflichtweltsprache nicht akzeptieren.
IDO wäre genau das Richtige: http://forum.idolinguo.de/index.php oder www.idolinguo.de
  Mit Zitat antworten Zitat
Oreaden

Registriert seit: 10. Nov 2008
60 Beiträge
 
#7

Re: Vista: Turbopascal startet Win32 Exe nicht

  Alt 22. Nov 2008, 15:41
Zitat von MacGuyver:
Es passiert einfach nichts. Weder eine Meldung noch eine Fehlercode von der Delphi-Anwendung.

Zitat:
Ansonsten was wäre dagegen einzuwenden, das TP Programm unter Delphi zu Kompilieren, und das mit dem 32 Bit Kompiler. Dann sollte das doch gehen.


Das geht?
Ja das geht. du musst nur die Ein-/Ausgaben überarbeiten, da neu die Konsole nicht mehr direkt ansprechbar ist, ausserdem musst du betriebssystemspezifische Aufrufe überarbeiten.

Deine unten gequotedete Funktion kannst Du gegen "ShellExecute" ersetzen. Wird von Windows bereitgestellt. Die ganzen INT 21h aufrufe gibt es natürlich auch nicht mehr und wären gegen neuere Systemfunktionen zu ersetzen.

Wenn ich mir deine Funktion so ansehe, denke ich fast, eine Portierung nach Delphi wäre einfacher und schneller, als den Fehler zu suchen.

Schöne Grüße
aus Delphi
  Mit Zitat antworten Zitat
Benutzerbild von MacGuyver
MacGuyver

Registriert seit: 9. Sep 2003
Ort: Wildeshausen
293 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Vista: Turbopascal startet Win32 Exe nicht

  Alt 22. Nov 2008, 15:55
Ja, da bin ich bei. Ich binde erst das DOS-Programm in ein Fenster in meiner Delphi-Anwendung ein und rufe die Teile passend auf. Dann portiere ich Stück für Stück und meine Kunden sehen dann immer mehr Windows. So kommt dann auch keine Unruhe auf, wenn die sehen, dass sich immer etwas tut.
Englisch eine Weltsprache? Zu kompliziert und der nahe Osten würde Englisch als Pflichtweltsprache nicht akzeptieren.
IDO wäre genau das Richtige: http://forum.idolinguo.de/index.php oder www.idolinguo.de
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz