Question

J'ai le code source pour une DLL Windows qui est écrit en C ++ et utilise Visual Component Library. Maintenant, ma tâche est de port à Linux, mais je n'ai pas le code source pour la VCL elle-même, ou tout type de documents (et je ne l'ai jamais travaillé avec Borland C ++, dans mes jours de Windows j'ai utilisé MFC)

Cela ne devrait pas être si difficile, puisque ma DLL ne possède pas de GUI: pour autant que je peux voir, il utilise la plupart du temps VCL pour le multithreading. Je courais dans une classe qui hérite de TThread et qui est où je suis coincé. Je l'ai fait quelques recherches sur Internet, mais n'a trouvé aucune documentation pour VCL jusqu'à présent. Je voudrais éviter d'acheter un livre sur Borland C ++ Builder, parce que je n'ai pas le temps d'attendre qu'il arrive de l'Amazonie. Je ne peux pas envisager d'acheter le package pour Windows, car au travail que je n'ai que Linux.

Toutes les suggestions?

Était-ce utile?

La solution

La VCL est documentée sur site web de CodeGear . TThread en particulier est décrit ici .

J'ai trouvé la documentation sur les composants liés enfilage de la VCL être assez rares. Ce site a une bien meilleure description de la méthode Delphi / VCL approche de filetage.

Autres conseils

Les bibliothèques Boost et wxWidgets, fourniront des analogues aux classes VCL.

Vous devez savoir que la VCL utilisée par C ++ Builder est entièrement écrit en Delphi / ObjectPascal. c ++ Builder applications impliquent toutes c ++ utilisant des bibliothèques à base delphi.

Le FreePascal / Lazarus projet open source a l'ingénierie inverse la plupart des VCL (presque tous les trucs non-visuel et une grande partie de la substance visuelle) et il fonctionne en mode natif sur Linux. L'étoffe non-visuelle VCL compatible est connu comme le "Free Component Library" ( "FCL") http://www.freepascal.org/ http://www.freepascal.org/fcl/fcl.var

La source de la mise en œuvre TThread dans le FCL devrait être assez facile à trouver.

L'une des options serait de réécrire dans FreePascal, où la langue changerait à ObjectPascal mais appelle à la VCL et l'utilisation de composants VCL serait pratiquement identique.

Une autre option pourrait être de port à c ++ sur Linux et en quelque sorte d'utiliser la VCL de FreePascal de c ++. Je ne suis pas sûr de la faisabilité / faisabilité de cela. Quelqu'un à des forums de FreePascal devrait être en mesure d'aider à répondre à cela.

Une autre option que quelqu'un a mentionné serait simplement de réécrire en utilisant une autre bibliothèque de threads.

Vous pouvez télécharger leur gratuit et essayer d'expérimenter avec elle. Il devrait être possible de l'exécuter sous WINE au moins. Peut-être même sous FreeDOS.

Il doit être lié à la classe TThread dans Delphi / Kylix. C'est une autre alternative pour l'explorer. Je crois que les méthodes les plus importantes ont été effectuées () et la synchronisation () mais il y a longtemps que je l'ai utilisé.

Cependant, si vous prévoyez de le port proprement le code de Linux, il peut aider à ré-implémenter la classe TThread vous, en utilisant des bibliothèques Boost ou quelque chose.

Il y a plusieurs années, Borland a publié une version de son IDE pour Linux, commercialisé comme Kylix . Je ne sais pas si elle est toujours prise en charge, mais cela pourrait être le chemin de moindre résistance, pour vous.

Il existe plusieurs bibliothèques qui offrent des cadres comme par exemple le filetage Boost (www.boost.org) ou ACE ( http: //www.cs. wustl.edu/~schmidt/ACE.html )

Il devrait être assez facile à porter le code d'utiliser l'un de ces infrastructures de filetage.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top