fopen_s() 에러 좀 봐주세요

jujuclub08의 이미지

MFC 에서

CString 타입의 파일이름을 오픈하는 데에서 에러가 납니다.

FILE *fp;
fopen_s(&fp, filename, "rb")
fclose( fp );

여기서 파일 이름은 다이얼로그의 Editbox를 통해 입력받은 CString 타입의 변수입니다.

에러는
error C2664: 'fopen_s' : cannot convert parameter 2 from 'CString' to 'const char *'
No user-defined-conversion operator available thar can perform this conversion, or the operator cannot be called.

도와주세요^^

bbaijang의 이미지

컴파일러에서 뱉는 에러나 워닝의 의미를 확인하시고,
MSDN에서 관련 내용 찾아보시면 됩니다.

아래 참조하세요 ^^

http://msdn.microsoft.com/en-us/library/aa300569(v=vs.60).aspx

익명 사용자의 이미지

cannot convert parameter 2
두번째 인자를 바꿀 수 없습니다.

from 'CString' to 'const char *'
CString에서 const char*로

여기서 알 수 있는 사실은?

fopen_s의 두번째 인자는 const char * 형이 와야 한다는 점이고,
CString은 const char* 형으로 묵시적으로 변환될 수 없다는 점입니다.

결론적으로
CString에서 const char *형을 뽑아낼 수 있는 방법을 찾아보면 되겠습니다.

이 다음부터는 스스로 찾아보는 것도 좋은 공부가 되겠네요.