PDA

View Full Version : [C++] Come cercare una classe all'interno del codice sorgente


Tubo Catodico
05-05-2008, 08:47
Ciao, il mio problema è questo: devo riuscire a capire come funziona lo streaming rtp all'interno del famoso "VLC"; in ricezione utilizza una libreria chiamata "Live555" che ho facilmente individuato (e di cui quindi ho i sorgenti). Il mio problema è però capire dove viene utilizzata questa libreria all'interno di vlc, ovvero dove sono presenti le chiamate alle varie funzione di "Live555"; mi ritrovo cioè con un codice sorgente ad oggetti molto frammentato. Spero di essermi spiegato bene, in caso contrario chiedete pure, accetto quasiasi consiglio! Grazie in anticipo ;)

khelidan1980
05-05-2008, 09:16
Ciao, il mio problema è questo: devo riuscire a capire come funziona lo streaming rtp all'interno del famoso "VLC"; in ricezione utilizza una libreria chiamata "Live555" che ho facilmente individuato (e di cui quindi ho i sorgenti). Il mio problema è però capire dove viene utilizzata questa libreria all'interno di vlc, ovvero dove sono presenti le chiamate alle varie funzione di "Live555"; mi ritrovo cioè con un codice sorgente ad oggetti molto frammentato. Spero di essermi spiegato bene, in caso contrario chiedete pure, accetto quasiasi consiglio! Grazie in anticipo ;)

Utilizzare un ide?Se ho capito bene quello che intendi,ad esempio su eclipse c'è la finestra outline che fa quello che chiedi

Tubo Catodico
05-05-2008, 09:20
Mi rispiego meglio, ho il codice sorgente sia del programma principale che di un plugin, questo plugin viene utilizzato dal programma principale da qualche parte, devo cercare nel codice sorgente del programma principale, trovarlo e capire come funziona...spero di essere stato più chiaro. Comunque uso Visual studio 2003. Grazie ancora!

sottovento
05-05-2008, 09:33
Mi rispiego meglio, ho il codice sorgente sia del programma principale che di un plugin, questo plugin viene utilizzato dal programma principale da qualche parte, devo cercare nel codice sorgente del programma principale, trovarlo e capire come funziona...spero di essere stato più chiaro. Comunque uso Visual studio 2003. Grazie ancora!

Beh, per quanto ne so non c'e' una modalita' standard di affrontare questo problema. Devi avere una buona capacita' di investigazione.

Cmq, se non hanno fatto dei giochi un po' troppo sporchi, io partirei dal plugin.
E' molto probabile, infatti, che il plugin debba implementare dei metodi virtuale di una classe nota anche al programma principale.

Per esempio:

class MyPlugin : public PluginDefinition

Comincerei a cercare dove la classe PluginDefinition e' utilizzata all'interno del codice del programma principale.
Per l'implementazione dei plugin si puo' ricorrere anche a giochi piu' sofisticati di questo, e detti giochi ti renderebbero la vita piu' difficile. Io pero' partirei da qui.
Inoltre, il nome della DLL/Shared che deve essere caricata, non e' noto a priori, ma verra' letto in qualche modo: scansione di un file di configurazione piuttosto che lettura del contenuto di qualche directory. Dopo di che si dovra' passare al caricamento dinamico del contenuto.
Ecco, proverei anche a cercare nel codice le chiamate a quelle primitive di sistema che ti permettono di caricare. Non ne esistono tante, dovresti arrivare al punto desiderato piuttosto in fretta...

variabilepippo
05-05-2008, 10:40
Per "navigare nel codice", oltre agli strumenti di base di VS, puoi usare tool (freeware o trial) appositi: Source Navigator (http://sourcenav.sourceforge.net/), Source Insight (http://www.sourceinsight.com/), Code Navigator (http://www.wellcode.com/home/index.php), Understand for C++ (http://www.scitools.com/products/understand/cpp/product.php)...

0rph3n
05-05-2008, 11:40
Mi rispiego meglio, ho il codice sorgente sia del programma principale che di un plugin, questo plugin viene utilizzato dal programma principale da qualche parte, devo cercare nel codice sorgente del programma principale, trovarlo e capire come funziona...spero di essere stato più chiaro. Comunque uso Visual studio 2003. Grazie ancora!

forse ho capito male, ma tu credi che se la classe del plugin si chiama ad esempio CalcolaMedia, nel software che ne fa uso ci sia un riferimento esplicito a CalcolaMedia? :confused:

Tubo Catodico
05-05-2008, 15:55
Mi sà che hp fatto casino nelle definizioni, dovrei parlare di libreria...non di plugin, scusate...