Dev-C++ (버전 4.9.9.2)와 함께 제공되는 표준 컴파일러를 사용하여 누군가의 오래된 C++ 프로젝트를 재구성하려고합니다. (MinGW를 사용하는 g ++라고 생각합니다.) Windows XP Pro SP3 32 비트에서. 파일 중 하나에서 strsafe.h 포함되어 내가 컴파일하려고하면이 오류 얻을 : 오류 점 (strsafe.h에서 마이크로 소프트() 라이브러리이다하는 것을 코드의strsafe.h의 ','토큰 앞에 예상 주된 표현
expected primary-expression before ',' token
의 선을 헤더 파일)은 다음과 같이 표시됩니다.
이러한 각 줄에는 2 개의 "예상 기본 표현식"오류가 있습니다. this forum thread은 NULL 값이 올바르게 인식되지 않았 음을 나타내고 strsafe.h 앞에 <cstddef>
이 포함되어 있음을 나타냅니다. 나는 그것을했고 그것은 효과가 없다. 또한 NULL이 실제로 정의 된 것처럼 보입니다. 왜냐하면 strsafe.h를 포함하기 전에 '#define NULL 0'을 수행 할 때 거기에 그것을 재정의한다는 오류가 발생하기 때문입니다.
죄송합니다. 더 자세한 정보를 제공해 드릴 수는 없지만이 오류를 재현하는 코드는 단순히 '#include <strsafe.h>
'입니다. 따라서 다른 말을해야할지 모르겠습니다. 아무도 무슨 일이 벌어지고 있고 어떻게 해결할 수 있을지 전혀 생각하지 못했습니까?
감사합니다.
내가 NULL로 정의됩니다 궁금해
사용중인 SDK의 버전은 무엇입니까? (strsafe.h의 전체 경로는 무엇입니까?) Vista SDK의 사본에는 StringGetsExWorkerA()에 대한 언급이 없습니다. –
별도의 포럼에서 언급 한 비슷한 문제가있는 것 같습니다 : http://forums1.avsim.net/index.php?s = 6bf19a616003413c15cf25212fde2352 & showtopic = 244719 & pid = 1617949 & st = 0 & # entry1617949. 이 포럼은 특히 strsafe.h와 MinGW에 대해 언급합니다. 문제를 해결하기 위해 수행 한 작업을 시도해 볼 수 있습니까? – reuben
PSDK-x86 버전을 다운로드 한 곳 : http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en#filelist (Windows® Server 2003 SP1 Platform SDK). strsafe.h에 대한 경로는 "C : ₩ Program Files ₩ Microsoft Platform SDK ₩ Include ₩ strsafe.h"입니다. @Rueben : "솔루션"은 다른 환경/컴파일러를 사용하는 것 같습니다. 나는 MSVC++을 시도해 보았지만 프로젝트에 다른 문제가 있었지만 여기서 요구하는 문제가 없다는 것이 옳다. – Jordi