는 ==

2014-02-28 10 views
4

두 LPCSTR 비교 나는 다음과 같은 일을 두 LPCSTR을 비교 구현을 발견했다. 나는 ...는 ==

if(lstrcmpi(lpText, input) == 0) 
{ 
    // do stuff 
} 

그리고 나는 지금 더 안전하게 느낀다.

단지 다른 구현이 주소 나 크기를 확인한 것인지 알고 싶습니다. 어떻게 작동 되었습니까?

하나의 LPCSTR의 메모리 주소를 확인한 결과 0x0633522c이고 다른 하나는 0x028a91a4입니다.

이것은 내 모든 기초를 흔들어줍니다. 첫 번째 예에서

답변

5

아마를 inputCString 예이며, 문자열 비교의 옳은 일을하는 원시 C 스타일의 문자열 포인터와 CString (const CString&)를 복용 operator==의 과부하가있다. 사실

cstringt.h ATL 헤더 파일에, 당신은 찾을 수 있습니다

friend bool operator==(
    _In_z_ PCXSTR psz1, 
    _In_ const CStringT& str2) throw() 
{ 
    return(str2.Compare(psz1) == 0); 
} 
+0

이를! input은 CStringArray의 요소입니다. 고맙습니다. 나는 이것을 할 수있을 때 몇 분 안에 표시 할 것이다. – Claudiordgz

+0

당신을 진심으로 환영합니다! :) –