Domanda

Non ho il codice sorgente per una DLL di Windows che è scritto in C ++ e usa Visual Component Library. Ora il mio compito è quello di porta che a Linux, ma non ho il codice sorgente per il VCL stesso, o qualsiasi tipo di documentazione (e non ho mai lavorato con Borland C ++; nei miei giorni di Windows ho usato MFC)

Questo non dovrebbe essere così difficile, dato che il mio DLL non ha alcuna interfaccia grafica: per quanto posso vedere, si utilizza prevalentemente VCL per il multithreading. Mi sono imbattuto in una classe che eredita da TThread ed è qui che mi sono bloccato. Ho fatto qualche ricerca su Internet, ma trovato finora alcuna documentazione per VCL. Vorrei evitare di acquistare un libro su Borland C ++ Builder, perché non ho tempo di aspettare che arrivi dal Rio delle Amazzoni. Non riesco a considerare l'acquisto del pacchetto per Windows, perché al lavoro ho solo una macchina Linux.

Qualche suggerimento?

È stato utile?

Soluzione

La VCL è documentato su di CodeGear sito web . TThread in particolare è descritto qui .

Ho trovato la documentazione sui componenti threading inerenti alle VCL essere piuttosto scarsa. Questo sito ha una migliore descrizione del Delphi / VCL approccio al threading.

Altri suggerimenti

Le librerie Boost, e wxWidgets, forniranno analoghi alle classi VCL.

È necessario essere consapevoli che la VCL usato da C ++ Builder è scritto interamente in Delphi / ObjectPascal. C ++ Builder applicazioni tutti implicano C ++ facendo uso di librerie Delphi-based.

Il progetto open source FreePascal / Lazarus ha decodificato la maggior parte della VCL (quasi tutte le cose non visivo e gran parte della roba visivo) e funziona nativamente su Linux. La roba non visivo compatibile VCL è conosciuta come la "Free Library Component" ( "FCL") http://www.freepascal.org/ http://www.freepascal.org/fcl/fcl.var

La fonte della realizzazione TThread nella FCL dovrebbe essere abbastanza facile da trovare.

Una possibilità sarebbe quella di riscrivere in FreePascal, dove il linguaggio cambierebbe per ObjectPascal ma chiede alla VCL e l'utilizzo di componenti VCL sarebbe praticamente identici.

Un'altra opzione potrebbe essere quella di porta da C ++ su Linux e in qualche modo fare uso di VCL di FreePascal dal C ++. Non sono sicuro della praticità / fattibilità di questo. Qualcuno al forum del FreePascal dovrebbe essere in grado di aiutare a rispondere a questo.

Quindi, un'altra opzione come qualcuno ha detto sarebbe solo di riscrivere usando qualche altra libreria threading.

È possibile scaricare il loro gratuito e provare a sperimentare con esso. Dovrebbe essere possibile eseguire sotto WINE, almeno. Forse anche sotto FreeDOS.

Si dovrebbe essere correlata alla classe TThread in Delphi / Kylix. Che è un'altra alternativa per esplorarla. Io credo che i metodi più importanti sono stati eseguiti () e sync () ma è stato secoli da quando l'ho usato.

Tuttavia, se si prevede di modo pulito porta il codice per Linux, può aiutare a ri-implementare la classe TThread da soli, utilizzando alcune librerie Boost o qualcosa del genere.

Molti anni fa, Borland ha rilasciato una versione del loro IDE per Linux, commercializzato come Kylix . Non sono sicuro se è ancora supportato, ma che potrebbe essere il percorso di minor resistenza, per te.

Ci sono diverse librerie che forniscono quadri come infilare esempio Boost (www.boost.org) o ACE ( http: //www.cs. wustl.edu/~schmidt/ACE.html )

Dovrebbe essere abbastanza facile da porta il codice per utilizzare una di queste infrastrutture filettatura.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top