externer vector?



  • Hi.

    Ich habe eine struct die ich in einen vector ablege.

    // in main.cpp
    struct XXX
    {
    int a;
    int b;
    };
    vector <XXX> xxx(100);
    

    in der main() wird alles mit Daten aufgefüllt.
    Mein Problem ist nun das ich es nicht in der main.cpp sondern modul01.cpp verwenden möchte, also mit extern zugreifen will.
    Ich bekomme es aber nicht gebacken 😞 😕

    //in modul01.cpp
    extern vector<IMDGs> IMDG;
    

    Sagt: error C2143: Syntaxfehler : Fehlendes ';' vor '<'

    die vector header ist natürlich eingebunden, kann mir trottel jemand helfen? 🙄



  • Am besten löst du das Problem indem du globale Variablen vermeidest.



  • Die Antwort war zwar weit an der Fragestellung vorbei, aber ja das habe ich als erstes probiert. Leider ernte ich nur einen Ausnahmefehler wenn ich es in eine Klasse setze. Der identische Code per Copy&Paste in die main() funktioniert aber tadellos

    // main.cpp
    #include "stdafx.h"
    #include <conio.h>
    #include <windows.h>
    #include "Blowfish.h"
    
    using namespace std;
    
    int main(int argc, char* argv[])
    {
    	IMethod* poMethod;
    
    	char *oStrKeyData = "xxx";
    	char acKey[56];
    
    	auto_ptr<CBlowFish> m_apBlowFish = auto_ptr<CBlowFish>(new CBlowFish());
    
    	strncpy(acKey, LPCTSTR(oStrKeyData), 56);
    	m_apBlowFish->Initialize(acKey, 56, SBlock(0UL,0UL), IMethod::ECB, IMethod::ZEROES);
    	poMethod = m_apBlowFish.get(); 
    
    	poMethod->DecryptFile("XXX.dat", "tmp");
    
    //.........
    
    getch();
    return 0;
    }
    

    gleicher Code

    #include "stdafx.h"
    #include <windows.h>
    #include "Blowfish.h"
    
    #include "XXX.h"
    
    bool XXX::Init(string FileName)
    {
    	IMethod* poMethod;
    
    	char *oStrKeyData = "xxx";
    	char acKey[56];
    
    	auto_ptr<CBlowFish> m_apBlowFish = auto_ptr<CBlowFish>(new CBlowFish());
    
    	strncpy(acKey, LPCTSTR(oStrKeyData), 56);
    	m_apBlowFish->Initialize(acKey, 56, SBlock(0UL,0UL), IMethod::ECB, IMethod::ZEROES);
    	poMethod = m_apBlowFish.get(); 
    
    	poMethod->DecryptFile("xxx", "tmp");
    
    //.........
    
    return true;
    }
    

    Abkratzen tut es in Zeile: poMethod->DecryptFile("xxx", "tmp");
    Ich habe aber nicht die geringste Ahnung warum...

    Also wenn mir jemand nen extern liefern könnte wäre ich sehr verbunden, denn nach stundenlangen sinnlosen stupiden suchen ist mir mächtig die Lust dran vergangen 😡



  • Oh Gott, wie kann man nur so dämlich sein! Nachdem ich ne try/catch drumgesetzt habe und mir mal den Fehler ausgegeben habe las ich mich jetzt nur noch einbuddeln. 🙄



  • Zurück zur ursprünglichen Frage:

    michel-kun schrieb:

    //in modul01.cpp
    extern vector<IMDGs> IMDG;
    

    Sagt: error C2143: Syntaxfehler : Fehlendes ';' vor '<'

    die vector header ist natürlich eingebunden, kann mir trottel jemand helfen? 🙄

    Hast du auch an std:: gedacht? (die C++ Standardbibliothek liegt nahezu komplett in diesem Namensraum)


Anmelden zum Antworten