[Qt프로그래밍] 문자열 is_block_type_valid 에러 해결 방법

[Qt프로그래밍] 문자열 is_block_type_valid 에러 해결 방법


is_block_type_valid[Qt프로그래밍] is_block_type_valid 에러 해결 방법


우선, Qt프로그래밍에서 발생하는 문자열 is_block_type_valid 에러 해결 방법은 일단 원인을 먼저 찾는 것이죠.

원인은 간단해요. QString을 잘못 다뤄서 발생하는 문제입니다. 


아래는 Qt프로그래밍에서 변환을 잘못한 예입니다.


1
2
QString test("에러나는 문자열");
cout << "Test : " << test.toStdString().c_str() << endl;
cs


Qt프로그래밍에서 이런 코드는 맨 위 그림과 같은 에러를 유발합니다. 그래서 아래처럼 바꿔야 해요.


1
2
QString test("이렇게 바꿔보세요");
std::string ascii_convert = test.toAscii().constData();
cs


변환된 문자열 ascii_convert를 출력하면 됩니다. 뒤에 붙은 constData는 문자 그대로 const 반환 함수라는 의미입니다.


이런 에러가 발생하는 원인은 뒤에 붙은 함수 c_str() 때문인데요. c_str()은 문자열 첫 문자의 주소를 반환합니다. 근데, 이게 Qt4에선 제한적으로 허용이 됐는데 5에선 아예 에러 처리가 되버려요.


혹시, Qt를 비주얼 스튜디오와 연동해 사용하신다면 비주얼스튜디오 버전도 확인해 보세요. 2012 이후론 허용하지 않는 문법입니다. 제가 알기론 2010까지만 허용하는 문법이예요.


[Qt프로그래밍] 문자열 is_block_type_valid 에러 해결 방법

이 글을 공유하기

댓글(2)

Designed by JB FACTORY