Hallo zusammen, ich habe ein Anliegen für Leute, die schon lange mit Pascal / Delphi arbeiten. Ich habe eine Software aus Delphi 1 (16bit), die zwischenzeitlich nicht mehr auf 64bit Betriebssystemen läuft. Ich möchte diese nun in Delphi 3 übersetzen, was auch bis auf eine Kleinigkeit gelungen ist. Problem ist folgende Funktion: Function CallFarProc (Var DatS; KeyNr: BYTE) : IsamKeyStr; INLINE($FF/$1E/ProcAdress); ProcAdress ist vom Typ Pointer und zeigt auf eine Funktion, die ausgeführt werden für CallFarProc ausgeführt werden soll. Das hat in Delphi 1 so funktioniert, allerdings scheint es diese Anweisung in Delphi 3 nicht mehr zu geben. Ich programmiere selbst nur in C++ / C# / Basic und bin grade etwas überfordert. Vielleicht kann mir jemand einen Tipp geben, wie ich die Funktion mit den Pointer ProcAdress einfügen kann. Vielen Dank und schönes WE! Steffen
Steffen schrieb: > Function CallFarProc (Var DatS; KeyNr: BYTE) : IsamKeyStr; > INLINE($FF/$1E/ProcAdress); Soll vermutlich ein in Assembler codierter Funktionsaufruf "far" sein, $FF ist dessen Opcode. Könnte eine Krücke für das 16-bittige Delphi 1 sein, braucht man in 32- und 64-bit nicht mehr. Das muss man in Delphi sinngemäß übersetzen: Delphi kennt Funktions- und Prozedurzeiger. Am Einfachsten müsste es sein, wenn ProcAddress gleich den richtigen Typ hat:
1 | type tProcAddress = Function(Var DatS; KeyNr: BYTE) : IsamKeyStr; |
2 | |
3 | var ProcAddress: tProcAddress; |
4 | |
5 | implementation |
6 | |
7 | Function CallFarProc (Var DatS; KeyNr: BYTE) : IsamKeyStr; |
8 | begin |
9 | result:=ProcAddress(DatS,KeyNr); |
10 | end; |
Delphi 3 ? Soll das ein Witz sein ? Delphi 3 war zwar super, das war aber im letzten Jahrtausend. "IsamKeyStr" erinnert mich an irgendwelche Toolboxen. Ich wuer alles neu schreiben. Das macht man heute in einem Bruchteil der Zeit. Das GUi ist besser, der Compiler ist schneller, der Code ist schneller.
Und die modernen Technologien veralten schneller. Bis du es in Angular umgesetzt hast, ist Angular schon längst wieder Steinzeittechnologie. Du musst es gleich wieder auf React umbauen. Bis du es in React umgesetzt hast ...
длинний зелёний тролль schrieb: > Ich wuer alles neu schreiben. Das macht man heute in einem Bruchteil der > Zeit. Wenn man die eigentliche "business logic" kennt, und sie trivial genug ist ...
длинний зелёний тролль schrieb: > Ich wuer alles neu schreiben Ich habe z.B. so alte Win16-Programme, die setzen die Rechnungsdaten aus der Fertigung so um, dass sie von der Buchhaltung gelesen werden können. Kein Hexenwerk, aber braucht man halt. длинний зелёний тролль schrieb: > Das GUi ist besser, der Compiler ist schneller, der Code ist > schneller Und das ist für so einen Zweck völlig irrelevant. Eher noch ist es besser, wenn sich an Aussehen und Bedienung GARNICHTS ändert. Georg
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.