2017-04-24 6 views
1

최근에 Visual Studio 2013에서 dlib 19.1을 내 프로젝트에 추가했습니다. 문제없이 라이브러리를 컴파일하고 예제를 실행하고 자체 콘솔 응용 프로그램을 만들어 작동시킬 수 있습니다 잘 됐네. dlib 및 windows 함수 충돌

하지만 내 프로젝트에 dlib를 통합 할 때, 나는 최근에 현재의 에러에 직면했다 :

Error 14 error : identifier "WaitForSingleObject" is undefined \include\dlib\threads\threads_kernel_1.h 120

내가 찾고 있어요 threads_kernel_1.h

에서이 유사한 50 오류, 모두가 있습니다를 모든 프로젝트 속성 및 dlib가 포함 된 예제 프로젝트와 비교할 때 의심스러운 항목을 찾지 못했습니다.

답변

1

식별자 "WaitForSingleObject"는 응용 프로그램에 <windows.h> 헤더를 포함하여 정의됩니다. 이 헤더는 \ include \ dlib \ threads \ threads_kernel_1.h에 포함되어 있지만 컴퓨터에서 문제가 발생했습니다.

이 기능을 dlib와 별도로 사용해보고 응용 프로그램에서 먼저 작동하는지 확인하십시오. 또한 귀하의 cpp 파일 상단에 #include <windows.h>을 명시 할 수 있습니다.

그리고 응용 프로그램에 사용자 지정 "windows.h"파일이 있습니까? 이름이 충돌 할 수 있습니까?

또한 당신이 CMake에 의해 비주얼 Studion 프로젝트를 생성 한 후 IDE

+0

내 프로젝트에는 사용자 정의 "WINDOWS.H가"없다에서의 사용을 권장 할 수 있습니다. 그리고 나는 당신이 의미하는 바를 얻지 못한다 : "이 함수를 dlib과 별도로 사용해 볼 수 있고 ..."? – Vuwox

+0

concole 응용 프로그램에서 WaitForSingleObject 함수를 호출 해보십시오. 오류가 발생합니까? 예인 경우 - 경로 및 파일을 포함하는 항목 (없는 경우) - 주문을 포함하여 dlib 파일에 무언가가 있거나 dlib가 손상되었을 수 있습니다. – Evgeniy

+0

현재 테스트 중입니다. 그래서 dlib와 관련된 모든 것을 포함하지 않았습니다. 컴파일 할 수 있습니다. 다음으로, 제 cpp에'GetCurrentThreadId()'를 추가합니다 ('WaitForSingleObject'와 비교하여 더 쉽게 호출 할 수 있습니다). 당신이 말했듯이, 나는 여전히'GetCurrentThreadId'에 정의되어 있지 않습니다. 그런 다음, 그 cpp에'Windows.h'를 추가하면 컴파일러는 오류를 해결할 수 있습니다. 하지만 헤더를 dlib 호출에 다시 추가 할 때. 여전히 GetCurrentThreadId에 정의되지 않았습니다. 그러나 나는'Windows.h'없이 50 개의 에러와 25 개의 에러만을 가지고 있음을 발견했다. 다른 곳에서'Windows.h' 문제가있을 수 있습니까? – Vuwox