Forum: PC-Programmierung Borland c++ 4 Portierumg


von RudiRatlos (Gast)


Lesenswert?

Hallo,
ich habe ein altes Projekt mit dem Borland C++ Builder 4 erstellt.
(Ein nicht all zu Komplexe grafische Anwendung)
Die damals übersetzte Software läuft noch bis Win2000.
Ich wollte mal von euch wissen, ob man die alten Sourcen evt. für Win7 
einfach neu Übersetzen kann?
Oder ob da gar nichts mehr passt, und man die Benutzeroberfläche neu 
erstellt und nur noch die alte Programmlogik verwendet?

von Peter II (Gast)


Lesenswert?

RudiRatlos schrieb:
> Die damals übersetzte Software läuft noch bis Win2000.

die Frage ist warum? Ist es etwas noch eine 16Bit Anwendung? Wenn es 
schon 32bit ist, dann sollte sie sogar unter Windows 8 laufen.

von RudiRatlos (Gast)


Lesenswert?

Das ist ziemlich sicher eine 16 Bit Anwendung.
Die aber komischerweise noch auf Win2000 läuft.

von Peter II (Gast)


Lesenswert?

RudiRatlos schrieb:
> Die aber komischerweise noch auf Win2000 läuft.

dann müsste sie auch unter WinXp laufen. Erst bei Win7 wurde die 16bit 
Unterstützung ausgebaut.

von Rainer V. (rudi994)


Lesenswert?

Mein Turbo Pascal für Win 3.x läuft im WinXP-Modus von Win7-Pro x64. Ist 
teilw. ruckelig und bei Dateinamen mit Leerzeichen ist eh alles zu spät.

von RudiRatlos (Gast)


Lesenswert?

Danke werds nochmal versuchen.

Müsste man für eine saubere Portierung nur die Variablen und Zeiger 
anpassen?
Sind die ganzen alten Grafikfunktionen zu win7/8 Kompatibel, da ja heute 
alles mit grafischen Formeditoren gemacht wird.

von Peter II (Gast)


Lesenswert?

RudiRatlos schrieb:
> Müsste man für eine saubere Portierung nur die Variablen und Zeiger
> anpassen?

wenn es sauber Programmiert ist, dann musst gar nichts angepasst werden.

Die Frage ist welche API für die Grafik verwendet wird.

von prg (Gast)


Lesenswert?

Peter II (Gast) schrieb:

RudiRatlos schrieb:
>> Die aber komischerweise noch auf Win2000 läuft.

> dann müsste sie auch unter WinXp laufen. Erst bei Win7 wurde die 16bit
> Unterstützung ausgebaut.

Die 16-bit Unterstützung ist auch in Win7 noch vorhanden, nämlich in der 
32-bit Version, ganz ohne XP-Modus (wie bei der Win7 64-bit).

von Arc N. (arc)


Lesenswert?

RudiRatlos schrieb:
> Das ist ziemlich sicher eine 16 Bit Anwendung.
> Die aber komischerweise noch auf Win2000 läuft.

Sicher? Zumindest in der Dokumentation des C++ Builders 1 steht nichts 
davon, dass das Teil 16-Bit-Anwendungen erzeugen könnte und ich kann 
mich nicht daran erinnern, dass das jemals mit dem C++Builder möglich 
war (die 5er Version des C++ Builders läuft hier noch hin und wieder in 
einer VM). Allerdings wurde Borland C++ 5 mitgeliefert... damit hätten 
16-Bit-Anwendungen erstellt werden können.

von RudiRatlos (Gast)


Lesenswert?

> Sicher?
Die Ntvdm.exe (virtual DOS Machine) startet jedenfalls.
Win3.1 war doch komplett 16bit oder?
Werd mich mal in den code einlesen und versuchen ihn mit einem aktuellen 
Compiler zu übersetzen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

RudiRatlos schrieb:
> Win3.1 war doch komplett 16bit oder?

Sofern nicht Win32s installiert war oder es sich nicht um Windows NT 3.1 
gehandelt hat ...

von Georg (Gast)


Lesenswert?

Hallo,

ich betreibe grad was Ähnliches (Portierung von Turbo Pascal für 
Windows), aber da hat sich gezeigt, dass der Teufel eben im Detail 
liegt, nur ein Beispiel: zwar funktionieren Dateizugriffe mit _lopen, 
_lseek, _lread noch, sind aber obsolete, auch OpenFile kann noch nicht 
Unicode, aktuell ist CreateFile - d.h. alles umschreiben was mit Datei 
zu tun hat. Und wenn die Software noch auf 8.3-Datenamen eingestellt ist 
wird es sehr hässlich und fehleranfällig.

Nächste Baustelle: Konfiguration - nix INI-Datei, Registry ist auch 
schon wieder überholt, aktuell gehört eine solche Datei z.B. in 
C:\Users\Administrator.000\AppData\Roaming\RK\TTManager\RKTTManager.INI.

So könnte ich weitermachen, das Fazit ist: wenn man die Sache auf den 
Stand von Windows 7/8 bringen will, bleibt kein Stein auf dem anderen, 
nur die nackten Algorithmen bleiben, Aber das ist meistens nur ein 
kleiner Teil.

Aber wie schon Konfuzius sagt, jedes Programm beginnt mit einer einzigen 
Anweisung.

Georg

von Hans-Georg L. (h-g-l)


Lesenswert?

Borland c++4 hört sich auch nach OWL als Gui an ..

Bau dir mit einem aktuellen Compiler eine neue Oberfläche und portiere 
dann eins nach dem anderen den Restcode da hinein.

Oder frag mal bei Embarcadero ob der C++Builder XE6 dein altes Programm 
übersetzen kann.

von Peter II (Gast)


Lesenswert?

Georg schrieb:
> zwar funktionieren Dateizugriffe mit _lopen,
> _lseek, _lread noch, sind aber obsolete, auch OpenFile kann noch nicht
> Unicode, aktuell ist CreateFile - d.h. alles umschreiben was mit Datei
> zu tun hat. Und wenn die Software noch auf 8.3-Datenamen eingestellt ist
> wird es sehr hässlich und fehleranfällig.

warum sollte man das umstellen müssen, 8.3 Dateinamen gibt es noch. Auch 
für Unicode funktioniert das. Auch das die obsolete spielt aktuell keine 
rolle.

> Nächste Baustelle: Konfiguration - nix INI-Datei, Registry ist auch
> schon wieder überholt, aktuell gehört eine solche Datei z.B. in
> C:\Users\Administrator.000\AppData\Roaming\RK\TTManager\RKTTManager.INI.

das macht doch Windows von selber, wenn das Programm eine ini Datei im 
Programmverzeichnis nutzt.


Klar kann man das Programm komplett Umschreiben, aber die Frage ist was 
notwendig ist damit es läuft. Und da ist keiner deiner punkte wichtig.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Peter II schrieb:
> warum sollte man das umstellen müssen, 8.3 Dateinamen gibt es noch.

Das sind gar keine Dateinamen. Das sind 8.3-Kürzel.

Und ich zumindest will keine Software mehr sehen müssen, die mir so 
etwas vorschreibt.

von Peter II (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Und ich zumindest will keine Software mehr sehen müssen, die mir so
> etwas vorschreibt.

naja, wenn ich einige k€ für eine Umstellung bezahlen müsste, nur um 
lange Dateinamen zu nutzen würde ich das Geld sparen.

von RudiRatlos (Gast)


Lesenswert?

Hans-Georg Lehnard schrieb:
> Borland c++4 hört sich auch nach OWL als Gui an ..
Ja OWL wird verwendet.....

> Bau dir mit einem aktuellen Compiler eine neue Oberfläche und portiere
> dann eins nach dem anderen den Restcode da hinein.

Darauf wird es wohl hinauslaufen....

> Oder frag mal bei Embarcadero ob der C++Builder XE6 dein altes Programm
> übersetzen kann.

Hab mal angefragt

Besten Dank an alle

von Thomas K. (muetze1)


Lesenswert?

Embarcadero ist auch nicht soo günstig. Hast du denn schon eine Lizenz 
vor Ort verfügbar? Ansonsten würde das wohl auch die Kosten schnell in 
die Höhe treiben. Ansonsten könnte man es auch als Auftrag ausführen für 
einen mit der Lizenz. Quellcode und EXE könnten dann zurückfließen.

von RudiRatlos (Gast)


Lesenswert?

Muss ich mir überlegen, muss mir den Code mal genauer ansehen.
Evt. versuche ich es mit QT (da schon damit gearbeitet), ist zwar blöd 
von Callbacks auf Signal,Slots umzustellen.
Jedoch ist die Applikation nicht so wahnsinnig komplex.

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
Noch kein Account? Hier anmelden.