Page 4 of 5 FirstFirst 12345 LastLast
Results 46 to 60 of 73

Thread: C++ help

  1. #46
    Lieutenant Commander Axet's Avatar
    Join Date
    Sep 2003
    Location
    Ginevra
    Posts
    33.807

    Default

    Scompari -.-

    I'm no hero. Never was. Never will be.
    -----
    Soul of the mind, key to life's ether
    Soul of the lost, withdrawn from its vessel
    May strength be granted so the world might be mended...
    So the world might be mended...

  2. #47
    Lieutenant
    Join Date
    Feb 2004
    Location
    Bresso
    Posts
    4.683

    Default

    Puoi postare la command line che c'e' sotto Linker nelle properties?
    Quelle sono le opzioni che effettivamente usa il linker in base a tutte le impostazioni del progetto.
    Probabilmente manca qualcosa li dentro, direi la .lib da linkare visto che non riesci ad aggiungerla dal menu.

  3. #48
    Lieutenant Commander Axet's Avatar
    Join Date
    Sep 2003
    Location
    Ginevra
    Posts
    33.807

    Default

    Quote Originally Posted by Kat View Post
    Puoi postare la command line che c'e' sotto Linker nelle properties?
    Quelle sono le opzioni che effettivamente usa il linker in base a tutte le impostazioni del progetto.
    Probabilmente manca qualcosa li dentro, direi la .lib da linkare visto che non riesci ad aggiungerla dal menu.
    Eccola:

    /OUT:"C:\Documents and Settings\HaX\Documenti\Visual Studio 2008\Projects\progettoRobotica\Debug\testEsecuzion e.exe" /INCREMENTAL /NOLOGO /LIBPATH:"C:\Documents and Settings\HaX\Documenti\Visual Studio 2008\Projects\progettoRobotica\Debug" /LIBPATH:"C:\Documents and Settings\HaX\Documenti\Visual Studio 2008\Projects\progettoRobotica\progettoRobotica\De bug" /MANIFEST /MANIFESTFILE:"Debug\testEsecuzione.exe.intermediat e.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\Documents and Settings\HaX\Documenti\Visual Studio 2008\Projects\progettoRobotica\Debug\testEsecuzion e.pdb" /SUBSYSTEM:CONSOLE /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /ERRORREPORT:PROMPT kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib "..\debug\progettorobotica.lib"

    I'm no hero. Never was. Never will be.
    -----
    Soul of the mind, key to life's ether
    Soul of the lost, withdrawn from its vessel
    May strength be granted so the world might be mended...
    So the world might be mended...

  4. #49
    Lieutenant
    Join Date
    Feb 2004
    Location
    Bresso
    Posts
    4.683

    Default

    Non mi torna questo:
    "..\debug\progettorobotica.lib"
    dovrebbe esserci il nome della lib e basta, come tutte le altre.
    Il path lo prende da /LIBPATH.

    A parte questo mi sembra tutto a posto, cmq il codice di errore e' quello tipico di quando non trova la dll.

  5. #50
    Lieutenant Commander Axet's Avatar
    Join Date
    Sep 2003
    Location
    Ginevra
    Posts
    33.807

    Default

    Quindi come posso sistemare?

    I'm no hero. Never was. Never will be.
    -----
    Soul of the mind, key to life's ether
    Soul of the lost, withdrawn from its vessel
    May strength be granted so the world might be mended...
    So the world might be mended...

  6. #51
    Lieutenant
    Join Date
    Feb 2004
    Location
    Bresso
    Posts
    4.683

    Default

    Eh senza avere davanti tutto il codice e i progetti e' difficile dire piu' di questo.

    Io ho VS2005 e non il 2008, non so se e' cambiato il sistema per aggiungere le dll come reference. Non riesci ad aggiungerla come ti ho detto? Nel linker dovrebbe semplicemente esserci il nome, il path lo prende da una variabile diversa (e dalla corrispondente opzione nelle properties).

    Ma la dichiarazione della funzione Parse nel .cpp della dll poi l'hai compilata con parseECF:: ? Altrimenti e' chiaro che non lo trova, cosi' e' definita come funzione, non come metodo della classe parseECF.

    Non so se sono stato chiaro, ma e' un po' arduo da spiegare a parole.

  7. #52
    Lieutenant Commander Axet's Avatar
    Join Date
    Sep 2003
    Location
    Ginevra
    Posts
    33.807

    Default

    No non me lo faceva aggiungere, cmq ho abdicato.
    Faccio un progetto console normalissimo e lo presento al prof, se vuole DOPO glielo trasformo in dll in qualche cazzo di maniera (magari mi illumina lui su come fare, anche se ho già avuto un'idea che in teoria mi risolverebbe tutti i problemi di sto tipo, ma per ora chissene mi sto sbattendo ad implementare).

    Btw visto che sto appunto implementando, non esiste un container non tipizzato in c++ come ad esempio le collection in java? :O
    Mi serve una struttura dati che mi tenga dentro N elementi di tipo eterogeneo, l'unica cosa carina che ho trovato è il vector che però purtroppo è tipizzato. La mia speranza era quella di dichiarare un vector della classe padre e sperare che non rompesse i coglioni quando lo riempivo di oggetti di classi figlie.. difatti sulla push non rompe, il problema è quando cerchi di reperire i dati dal vector scopri che son magicamente diventati di tipo "classe padre".. non so se mi spiego

    Un container più intelligente non esiste? t_T

    edit:
    per spiegarmi meglio, se io dichiaro:

    vector<animale> x;

    e poi faccio

    x.push_back(new cane());

    me lo genera e non rompe le palle.. se però vado a cercare di accedere direttamente all'ultimo oggetto inserito, cioè un oggetto di tipo cane, nella seguente maniera:

    x.back()->"metodo random"; i metodi/attributi che mi mostra e che posso usare sono quelli della classe padre.

    Difatti provo a reperire l'oggetto così:

    cane* y = x.back();

    mi da errore in compilazione in quanto impossibile convertire da animale a cane.. t_T
    Last edited by Axet; 29th October 2009 at 20:38.

    I'm no hero. Never was. Never will be.
    -----
    Soul of the mind, key to life's ether
    Soul of the lost, withdrawn from its vessel
    May strength be granted so the world might be mended...
    So the world might be mended...

  8. #53
    Petty Officer 2nd Class mahoney's Avatar
    Join Date
    Nov 2003
    Location
    Teramo
    Posts
    628

    Default

    Quote Originally Posted by Axet View Post
    No non me lo faceva aggiungere, cmq ho abdicato.
    Faccio un progetto console normalissimo e lo presento al prof, se vuole DOPO glielo trasformo in dll in qualche cazzo di maniera (magari mi illumina lui su come fare, anche se ho già avuto un'idea che in teoria mi risolverebbe tutti i problemi di sto tipo, ma per ora chissene mi sto sbattendo ad implementare).

    Btw visto che sto appunto implementando, non esiste un container non tipizzato in c++ come ad esempio le collection in java? :O
    Mi serve una struttura dati che mi tenga dentro N elementi di tipo eterogeneo, l'unica cosa carina che ho trovato è il vector che però purtroppo è tipizzato. La mia speranza era quella di dichiarare un vector della classe padre e sperare che non rompesse i coglioni quando lo riempivo di oggetti di classi figlie.. difatti sulla push non rompe, il problema è quando cerchi di reperire i dati dal vector scopri che son magicamente diventati di tipo "classe padre".. non so se mi spiego

    Un container più intelligente non esiste? t_T

    edit:
    per spiegarmi meglio, se io dichiaro:

    vector<animale> x;

    e poi faccio

    x.push_back(new cane());

    me lo genera e non rompe le palle.. se però vado a cercare di accedere direttamente all'ultimo oggetto inserito, cioè un oggetto di tipo cane, nella seguente maniera:

    x.back()->"metodo random"; i metodi/attributi che mi mostra e che posso usare sono quelli della classe padre.

    Difatti provo a reperire l'oggetto così:

    cane* y = x.back();

    mi da errore in compilazione in quanto impossibile convertire da animale a cane.. t_T

    Prova ad usare un vettore di puntatori invece di type:
    vector<animale*> x;

    o cmq puoi sempre provare con un type non definito:
    vector<void*> x;

    gli elementi che recuperi per l'elaborazione devo essere 'castati' nella classe type che ti serve o nativa:
    x.push_back(new animale());

    animale* y = (animale*)x.back();


    EDIT:
    ^^
    cane* y = x.back();
    cane* y = (cane*)&x.back();
    Last edited by mahoney; 29th October 2009 at 21:23.

  9. #54
    Lieutenant Commander Axet's Avatar
    Join Date
    Sep 2003
    Location
    Ginevra
    Posts
    33.807

    Default

    Si pardon ho scritto male io, ovviamente dichiaro un vettore di puntatori.
    Thanks provo sia col metodo del void che con il cast (anche se l'avevo cassato perchè temevo di dover fare upcasting e downcasting con conseguende copy constructor e visto che son neofita del c++ è meglio che non mi spingo troppo in la).

    In caso cmq non riesca con nessuno dei metodi continuo come sto facendo ora, cioè N vettori di N tipi diversi e poi mi arrangio in qualche modo

    edit:
    provato.. non funziona nessuno dei due metodi ma pensandoci il motivo è molto semplice. Quando sbatti l'oggetto della classe figlia nel vector viene automaticamente fatto il cast alla classe padre. Di conseguenza, essendo un cast da una classe più specifica a una meno specifica vi è perdita di informazioni. Dato questo fattore, un cast "al contrario" da padre a figlia è ovviamente impossibile perchè le informazioni perse durante il primo cast sono, per l'appunto, scomparse e non è che saltano fuori dal nulla
    Last edited by Axet; 29th October 2009 at 21:25.

    I'm no hero. Never was. Never will be.
    -----
    Soul of the mind, key to life's ether
    Soul of the lost, withdrawn from its vessel
    May strength be granted so the world might be mended...
    So the world might be mended...

  10. #55
    Lieutenant Commander Alkabar's Avatar
    Join Date
    Feb 2004
    Location
    Netherlands.
    Posts
    19.975

    Default

    Argh C++ ... non posso aiutare qua, lo ho studiato solo quando cercavo lavoro con Goldman Sachs e quando non e' andata ho lasciato andare.

  11. #56
    Lieutenant Commander Kolp's Avatar
    Join Date
    Jan 2004
    Location
    Trieste/Milano
    Posts
    7.201

    Default

    OT ti hanno chiamato per l'inteview da GS? io ho fatto l'application, ma avendo poche working experiences e senza alcun voto del master, la vedo dura che mi chiamino...

  12. #57
    Petty Officer 2nd Class mahoney's Avatar
    Join Date
    Nov 2003
    Location
    Teramo
    Posts
    628

    Default

    Quote Originally Posted by Axet View Post
    edit:
    provato.. non funziona nessuno dei due metodi ma pensandoci il motivo è molto semplice. Quando sbatti l'oggetto della classe figlia nel vector viene automaticamente fatto il cast alla classe padre. Di conseguenza, essendo un cast da una classe più specifica a una meno specifica vi è perdita di informazioni. Dato questo fattore, un cast "al contrario" da padre a figlia è ovviamente impossibile perchè le informazioni perse durante il primo cast sono, per l'appunto, scomparse e non è che saltano fuori dal nulla
    'need' le dichiarazioni delle due classi, padre e figlia.

    Edit:
    suppongo che stai usando classi derivate; il padre (animale) è il riferimento ad una specie animale, e la figlia la specie in dettaglio:

    class animale
    {
    public:
    string m_specie;
    };

    class cane: public animale
    {
    public:
    int m_nZampe;//quante zampe
    int m_nDenti;//quanti denti
    int m_sesso;//0mas//1fem//2e
    int m_alimentazione;//0carne//1vege//2onni
    };

    Edit2:
    se invece usi classi 'nested' ed avere i figli all'interno della classe padre:

    class cane
    {
    public:
    string m_specie;
    cane* m_myFather;//alla creazione inserisci qui il colpevole
    vector<cane*>figli;
    };
    Last edited by mahoney; 29th October 2009 at 23:16.

  13. #58
    Lieutenant Commander Axet's Avatar
    Join Date
    Sep 2003
    Location
    Ginevra
    Posts
    33.807

    Default

    Uso classi derivate.. cmq sono abbastanza sicuro che sia come ho detto prima, se tu casti dalla classe figlia alla classe padre avrai inevitabilmente una perdità di specificità che è irrecuperabile visto che le informazioni, di fatto, scompaiono.

    Mi son rassegnato all'inferiorità del c++ rispetto a java (flamehh ) e di conseguenza all'uso di più vector di tipo differente

    I'm no hero. Never was. Never will be.
    -----
    Soul of the mind, key to life's ether
    Soul of the lost, withdrawn from its vessel
    May strength be granted so the world might be mended...
    So the world might be mended...

  14. #59
    Warrant Officer marlborojack's Avatar
    Join Date
    Mar 2009
    Location
    Pisa
    Posts
    3.215

    Default

    Quote Originally Posted by Axet View Post
    Mi son rassegnato all'inferiorità del c++ rispetto a java (flamehh ) e di conseguenza all'uso di più vector di tipo differente
    Taci, stolto infedele, il c++ è il verbo. Supponiamo che tu abbia la classe madre e classe figlia, e tu debba mettere gli oggetti della classe figlia in un array della classe madre, ma poi accedervi tramite i metodi della classe figlia. Allora, l'array della classe base dev'essere di puntatori alla classe base, in modo che tu possa creare gli oggetti nello heap. A quel punto, assegni nell'array l'indirizzo dell'oggetto, dopodichè assegni ad un puntatore della classe figlia lo stesso indirizzo salvato nel puntatore dell'array della classe base. Non c'è alcuna perdita di informazione, perchè non c'è alcun assegnamento.
    Happiness in intelligent people is the rarest thing I know.

  15. #60
    Lieutenant Commander Axet's Avatar
    Join Date
    Sep 2003
    Location
    Ginevra
    Posts
    33.807

    Default

    Vero, dopo una giornata a sbattere la testa su sta merda non ci avevo pensato.
    Btw però così facendo avrei bisogno di un puntatore per ogni oggetto nel container, a sto punto manco mi servirebbe più il vector

    Cioè non posso fare così, mi serve che sia gestibile dinamicamente :O

    I'm no hero. Never was. Never will be.
    -----
    Soul of the mind, key to life's ether
    Soul of the lost, withdrawn from its vessel
    May strength be granted so the world might be mended...
    So the world might be mended...

Page 4 of 5 FirstFirst 12345 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
[Output: 104.59 Kb. compressed to 89.49 Kb. by saving 15.10 Kb. (14.44%)]