Frage

Ich habe Quellcode für einen Windows-DLL, die in C ++ geschrieben ist und verwendet Visual Component Library. Jetzt ist meine Aufgabe zu portieren, die auf Linux, aber ich weiß nicht Quellcode für die VCL selbst, oder jede Art von Dokumentation (und ich habe noch nie mit Borland C gearbeitet ++; in meinen Windows-Tagen I MFC verwendet wird)

Dies sollte nicht sein, alle hart, dass, da meine DLL keine GUI hat: soweit ich sehen kann, ist es meist VCL für Multithreading verwendet. Ich lief in eine Klasse, die von TThread erbt und das ist, wo ich stecken geblieben. Ich habe im Internet eine Suche, fand aber keine Dokumentation für VCL bisher. Ich möchte ein Buch über Borland C ++ Builder zu kaufen vermeiden, weil ich nicht zu warten, Zeit haben, um es aus dem Amazonasgebiet zu gelangen. Ich kann nicht für das Paket für Windows kaufen, weil bei der Arbeit nur ich eine Linux-Box habe.

Irgendwelche Vorschläge?

War es hilfreich?

Lösung

Die VCL ist dokumentiert auf CodeGear-Website . TThread insbesondere ist hier .

Ich habe die Dokumentation zu dem Threading bezogenen Komponenten der VCL sein eher spärlich vorhanden. Diese Seite eine viel bessere Beschreibung des Delphi / VCL hat Ansatz für Threading.

Andere Tipps

Die Boost-Bibliotheken und wxWidgets werden Analoga zu den VCL-Klassen bieten.

Sie sollten sich bewusst sein, dass die VCL von C ++ Builder verwendet vollständig in Delphi / Object geschrieben. C ++ Builder apps all c ++ beinhaltet die Nutzung von delphi-basierten Bibliotheken.

Die Freepascal / Lazarus Open-Source-Projekt hat sich zurückentwickelt den größten Teil der VCL (fast alle der nicht-visuellen Material und viel von der visuellen Sachen) und es läuft nativ auf Linux. Das nicht-visuelle VCL-kompatible Material wird als „Free Component Library“ ( „FCL“) bekannt http://www.freepascal.org/ http://www.freepascal.org/fcl/fcl.var

Die Quelle der TThread Implementierung in der FCL sollte einfach genug sein, zu finden.

Eine Option wäre in Freepascal neu zu schreiben, wo die Sprache zu Object ändern würde, aber Anrufe an die VCL und die Verwendung von VCL-Komponenten nahezu identisch wäre.

Eine weitere Option könnte in dem Hafen c seine ++ unter Linux und irgendwie Verwendung von Freepascal VCL von c ++ machen. Ich bin mir nicht sicher, ob die Praktikabilität / Durchführbarkeit davon. Jemand in Freepascal Foren sollte dabei helfen kann, beantworten.

So eine andere Option als jemand erwähnt hat, würde nur unter Verwendung eines anderen Threading-Bibliothek neu zu schreiben sein.

Sie können ihre freie Compiler rel="nofollow und versuchen, damit zu experimentieren. Es sollte möglich sein, sie unter WINE zumindest zu laufen. Vielleicht sogar unter FreeDOS.

Es sollte auf die TThread Klasse in Delphi / Kylix in Beziehung gesetzt werden. Das ist eine weitere Alternative für die es zu erkunden. Ich glaube, dass die wichtigsten Methoden wurden durchgeführt () und sync (), aber es ist Alter, seit ich es benutzt.

Wenn Sie jedoch der Code auf Linux sauber Port planen, kann es helfen, die TThread Klasse selbst neu zu implementieren, einige Boost-Bibliotheken oder etwas verwenden.

Vor vielen Jahren veröffentlichte Borland eine Version ihrer IDE für Linux, vermarktet als Kylix . Ich bin mir nicht sicher, ob es immer noch unterstützt wird, aber das könnte der Weg des geringsten Widerstandes, für Sie sein.

Es gibt mehrere Bibliotheken, die zum Beispiel Frameworks wie Threading bieten Boost (www.boost.org) oder ACE ( http: //www.cs. wustl.edu/~schmidt/ACE.html )

Es sollte ganz einfach zu portieren sein der Code eines dieser Threading-Infrastrukturen zu nutzen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top