Seitdem ich auf Visual Studio.NET umgestiegen bin(Ich hasse es), geht das plötzlich nicht mehr, was mit VC++6 kein Problem war.
Das hier:
string str; QString s(str);
führt zu einem Segmentation Fault, obwohl dafür extra ein Konstruktor überladen ist.
Hat jemand ähnliche Erfahrungen? Ist das vielleicht ein Bug? -- Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
Normalerweise steckt Qt in einer DLL. In einer DLL-Schnittstelle mit Templates zu arbeiten (std::string), ist meines Wissens nach sehr riskant. Ich würde diese Überladung nicht benutzen sondern die für const char*, also:
Ja, so hab ichs dann gezwungenermaßen auch gemacht...
Kannst Du mir sagen, warum das mit den Templates riskant ist? -- Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
Weil die DLL im Allgemeinen mit einem anderen Compiler und/oder einer anderen Implementierung des Templates übersetzt wurde als deren Anwendung (Dein Programm). Im Deinem Fall übergibst Du ein string mit Deiner Impl. an Qt, der mit einer anderen Impl. weiter damit arbeitet. -- Reden ist Schweigen und Silber ist Gold.