MFC CString을은 직접 할당 경로와 구성 파일 경로 문자열이 읽기 솔루션의 다른 결과로 이어질 읽고

다음과 같은 사례는 다음과 같습니다

방법 A : 경로에서 구성 파일을 읽는

  (strWindow.GetBuffer (1024), 1024, m_inipath을 "매개 변수", "sourcefacespath", "NULL을")이 GetPrivateProfileString;    

  //strWindow.ReleaseBuffer(1024); // 이것 또한 이하의 파일 경로를 얻을 추가
  CString을 m_folderPath = strWindow; 

CString을 strWildCard = m_folderPath;

strWildCard + = "\\ *. *";

방법 2 : 직접 할당

CString을 m_folderPath = "\\\\ 192.168.1.132 \\ 사용자 \\ ZJS \\ 바탕 화면 \\ facesSample"; 

CString을 strWildCard = m_folderPath;

strWildCard + = "\\ *. *";

 

그 결과 두 가지 방법이 경로에서 파일을 얻을 수 있으며,이 방법은 될 수 없다;

 

해결 방법 :

(strWindow.GetBuffer (1024), 1024, m_inipath을 "매개 변수", "sourcefacespath", "NULL을")이 GetPrivateProfileString;    

  strWindow.ReleaseBuffer (); // 괄호의 데이터 길이를 추가 할 수 없습니다

 

분석 :

프로필 문자열 데이터를 읽기 위해 필요한 문자열 길이를이 GetPrivateProfileString, 문자열 길이를 지정 종종 접합, 수동으로 여분의 공백 문자를 공개 할 필요가있을 때 문제를 다음과 같은 문자열을 일으키는 원인이되는 문자열의 실제 길이보다 큰 (전화 ReleaseBuffer () 메소드 자료, 절단 길이 데이터가 추가 될 수있는 접합 브라켓 달리 무효)

이것은 그들의 이야기, 간단한 이해, 더 깊이있는 연구를 목적으로하지만, 같은 상황 피어 도울 수있는 경험을 할 수 있습니다.

뭔가 잘못이 지정 환영합니다, 감사합니다!

게시 15 개 원래 기사 · 원 찬양 20 ·은 10000 +를 볼

추천

출처blog.csdn.net/ZDT_zdh/article/details/100113504