jugin ha scritto:
Vorrei convertire una grossa applicazione Delphi CLX in VLC.
Non so da dove cominciare.
C'è qualcuno che conosce la strada giusta?
Le due librerie sono molto simili, per semplificare la migrazione di codice in particolare dalla VCL verso CLX, ma non sono del tutto identiche, anche perché "wrappano" delle API differenti e progettate per eseguire su sistemi operativi che presentano molte differenze.
Che io sappia, non esiste a oggi un automatismo in grado di effettuare una conversione automatica dall'una all'altra, anche se qualcosa potrebbe dare una mano nello svolgimento delle operazioni più macchinose (es. modifica dei nomi delle unit rimuovendo il "Q" di troppo e cose del genere); ad esempio,
Mida Converter è un tool che effettua questo compito e penso potrebbe essere "piegato" a realizzare una operazione del genere, magari con un aiuto da parte del supporto tecnico.
Ovviamente, quanto sopra vale se i tempi sono ristrettissimi, la quantità di codice da convertire è tanta, il numero di modifiche automatiche che si possono fare sono elevate (poiché il codice è stato scritto bene) e così via.
In tutti gli altri casi, il mio suggerimento è quello di riscrivere l'applicazione VCL utilizzando preferibilmente una versione recente di Delphi, ricostruendo l'interfaccia utente a poco a poco usando i componenti e i controlli della libreria VCL appunto, avendo cura di migrare gradualmente anche il codice sostituendo le implementazioni specializzate per CLX con quelle attese dalla VCL, dove previsto, oppure lasciando tutto così com'è quando si tratta di funzioni e classi della RTL che risultano condivise e utilizzabili da entrambe le librerie.
Si tratta ovviamente di un porting che richiede un pochino di esperienza da parte dello sviluppatore e un approccio graduale nel processo di migrazione dell'interfaccia e del codice da effettuare con cura e che richiede probabilmente un po' di tempo.
Per il resto, tutto dipende sensibilmente da come è stata scritta l'applicazione e quali componenti specifici (anche di terze parti) sono stati utilizzati.
Magari con qualche dettaglio in più è possibile dare indicazioni più precise riguardo problematiche specifiche e mirate.
Ciao!