2016-09-12 4 views
-1

저는 C++ 프로젝트와 함께 SRWLock을 사용하려고합니다. Visual Studio 2012 (Windows 7)는 32 비트 Windows 전용이고 SRWLock은 제 경우에는 CriticalSections입니다. 필자가 조사한 것처럼 WinBase.h를 포함하고 std 네임 스페이스를 사용해야합니다. 그러나 SRWLock은 아직 정의되지 않았습니다. Google에서 유용한 정보를 찾을 수 없습니다. 내가 빠진 게 뭐야? 나는 모든 단서를 주셔서 감사합니다. 코드하십시오 잘못 입력을했다SRWLock이 정의되지 않은 이유는 무엇입니까?

#include <cstdlib> 
#include <winsock2.h> 
#include <Ws2tcpip.h> 
#include <windows.h> 
#include <stdio.h> 
#include <vector> 
#include <iostream> 
#include <string> 
#include <conio.h> 
#include <WinBase.h> 
using namespace std; 
SRWLock gLock; // here is the problem 
+0

Dunno 어떤 문서가'winbase.h '에 이것을 가지고 있다고 말했는지. [** 실제 ** 설명서를 읽어보십시오.] (https://msdn.microsoft.com/en-us/library/br244843.aspx). C++ .NET 클래스를 사용하고 있다면, 그 클래스를 찾을 수 있습니다. 핵심 winapi를 사용하는 경우 [해당 설명서는 여기에 있습니다.] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa904937(v=vs.85)asp). 외모로 판단 할 때, 당신은 전자를 사용하고 싶었지만 후자를 위해 파일을 포함 시켰습니다. – WhozCraig

+0

WhozCraig, 고마워. 링크 중 하나가 해결책을 지적했습니다. 당신은 실제로 내 대답을 바꿔서 받아 들일 수 있습니다. – Archont

+0

제프리 리히터 (Jeffrey Richter)와 크리스토프 나 사레 (Christophe Nasarre)의 "Windows via C \ C++"책에서 WinBase.h를 발견했습니다. – Archont

답변

1

: SRWLOCK 대신 SRWLock이어야한다. 그리고 당신이 필요합니다.

#include <windows.h> 
관련 문제