함수 출력이 QString 대신 std :: string 인 다른 라이브러리를 사용하는 Qt 앱이 있습니다. 내 외부 lib 디렉토리가없는 빈 표준 : : 문자열 모든 것이 잘 작동 반환하면 std :: string with Qt를 사용하면 파기시 런타임 오류가 발생합니다.
그래서 내 프로그램에서 나는 방법을void doSomething() {
...
std::string std_string = MyExternalLibraryThatReturnsSTLstring.getString();
QString myQString = QString::fromStdString(std_string);
...
process(myQString);
...
}
있습니다. 그러나 빈 std :: string이 반환되면 응용 프로그램이 범위 끝에서 충돌합니다. 나는 std :: string 객체 (?)의 파괴와 관련이 있다고 생각했다.
QString으로의 변환도 빈 표준 : : 문자열, 잘 작동합니다.
누군가는이 일이 내 이유를 말해 줄 수, 그리고 어떻게 런타임 오류를 피하기 위해?
는(다른 스레드에서 어떤 사람들은 디버그의 혼합을 논의 라이브러리를 출시,하지만 난 그 짓을 생각 해달라고했다. BTW 찾는 방법?)
ok .. 나는 그것을했고 그것은 단지 많은 것들을 사용하는 표준 Qt libs + my external.dll만을 사용했다. 나는 틀린 것이나 여기에없는 것이 있는지 정말로 알 수 없다. 그러나 그것은 그것처럼 보이지 않는다. – Magus