2012-06-22 5 views

답변

5

fopen은 Qt의 일부가 아닙니다. Qt의 리소스 시스템은 Qt 클래스에서만 작동합니다. 자세한 내용은 Using Resources in the Application의 Qt 설명서를 참조하십시오.

리소스에 대해 작동하는 Qt 클래스는 주어진 파일 이름이 리소스 마커 (:)로 시작하는지 먼저 확인하고, 그렇다면 리소스를 내부적으로 조회합니다 (물리적 파일이 열리지 않음) 파일. 리소스는 Qt 리소스 컴파일러를 사용하여 컴파일하는 동안 응용 프로그램의 소스 코드 (간단한 바이트 배열)에 포함되며 내부적으로 Qt의 특수 리소스 판독기를 사용하여 읽을 수 있으므로 리소스 파일을 으로 처리 할 수 ​​있습니다이 실제 파일이 되겠지만 여전히 이 아닙니다.

리소스 파일 경로 (:으로 시작)를 fopen으로 전달하면 어떻게됩니까? fopen실제 디렉토리 (:)를 읽고이 디렉토리에서 사용자가 제공 한 하위 경로를 검색합니다. 물론 파일이 실행 파일의 일부이기 때문에 하드 드라이브에 그러한 디렉토리가 존재하지 않습니다. (fopen을 사용하여 실행 파일을 열고 리소스를 찾으려면 실행 파일에서 수동으로 리소스 파일을 읽지 마십시오.

구체적 상황 : 외부 이미지를 사용하여 이미지를 읽으려고합니까? 리더? Qt에는 독자적인 PNG 리더가 있습니다. QImage(QString filename) 생성자를 호출하면됩니다.

관련 문제