Veröffentlicht 15. Dezember 200618 j Hi, ich habe ein kleines Problem. Vorweg ich arbeite mit MS VC++ 6.0. Also ich habe eine Dll und ein Programm, dass diese Dll einbindet. // Dll // ... std::map<std::string, std::string> params; // params füllen // TESTAUSGABE 1 for (std::map<std::string, std::string>::iterator iter = params.begin(); iter != params.end(); iter ++ ) { std::cout << (*iter).first << " / " << (*iter).second << "\n"; } std::cout << std::endl; // m_callback ist ein Zeiger auf eine Funktion und zeigt auf callback im // Programm. m_callback(params); // ... // ----------------------------------------------------------------------- // Programm // ... void callback (std::map<std::string, std::string>& params) { // TESTAUSGABE 2 for (std::map<std::string, std::string>::iterator iter = params.begin(); iter != params.end(); iter ++ ) { std::cout << (*iter).first << " / " << (*iter).second << "\n"; } std::cout << std::endl; } // ... Zum Problem: Ich habe zum Testen die beiden Ausgaben eingebaut. Ausgabe 1 funktioniert einwandfrei udn zeigt mir alle key/value- Paare an, die ich vorher in die map geschrieben habe. Ausgabe 2 schlägt fehl. Die map enthält die richte Anzahl Elemente (params.size()). Dementsprechend läuft auch die Schleife die 'richtige' Anzahl Durchläufe. Aber ich kann auf den Iterator nicht zugreifen. Beim Versuch (*iter).first bzw. (*iter).second auszugeben crashed mein Programm. Die Lösung überlasse ich Euch Ich hate schon an einen Compilerfehler gedacht (ähnlich dem Problem, dass ich in der callback Funktion keinen std::string zurückgeben kann), dazu ist mir allerdings nichts bekannt.
17. Dezember 200618 j Vorweg ich arbeite mit MS VC++ 6.0. ... ähnlich dem Problem, dass ich in der callback Funktion keinen std::string zurückgeben kannStell die C-Runtime in der DLL und im Programm auf Multithreaded [Debug] DLL.
18. Dezember 200618 j hilft schon mal bei der Rückgabe eines std::string. Aber die map möchte weiterhin nicht.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.