|
TCHAR 형은 보통 char 형과 같습니다만 유니코드를 쓸때는 와이드캐렉터형 wchar_t
변수가 됩니다.
쓰신 경우는 그냥 char 형일 경우라고 생각되는데
이 경우
if (wfd.cFileName == name)
은 그냥 두 포인트 값만 비교하는것이므로 절대 같지 않게 나오지요.
문자열이 같은지 비교하려면
if (!strcmp(wfd.cFileName, name))
로 해야 합니다.
AnsiString 형 문자열 변수는 그냥 == 로 비교 가능하지만
char 형 문자열은 strcmp 라는 문자열 비교함수를 사용해야 합니다.
그럼.
Destinyz 님이 쓰신 글 :
: 제가 한창 프로그램을 만들다가요...
:
: 찾은 파일명과 프로그램에서 찾고자 하는 파일명이 같으면 메시지를 띄우는 걸 하려고 했는데요,
:
: 찾으려고 하는 파일명을 찾는 함수를
:
: FindFirstFile, FindNextFile, FindClose
:
: 로 썼습니다. 그리고 이 함수들을 쓰기위해서 WIN32_FIND_DATA 구조체를 썼구요...
:
: 프로그램은 오류없이 잘 돌아가지만, 논리적인 오류가 있는듯 합니다.
:
: 제가 가장 강력하게 의심하고 있는 부분은
:
: 바로 WIN32_FIND_DATA 구조체의 TCHAR형 변수 cFileName(함수를사용했을때얻어진파일명)가
:
: char형 변수 filename(프로그램에서찾고자하는파일)과 비교가 안되는 것입니다.
:
: TCHAR형과 char형 변수는 원래 비교가 안되나요? 같은 걸로 알고 있습니다만...
:
: 혹시나해서 char형 변수를 임시로
:
: (TCHAR)filename 으로 했더니만 포인터 오류가나서
:
: (TCHAR*)filename 라고 했는데, 또 비교는 안되더군요...
:
: 어떻게 비교를 해야할가요!! 제발 도와주세열 ㅠㅅ ㅠ
|