2013-05-14 3 views
2

헤더 파일이있는 C 라이브러리가 있습니다. 이제 C++에서 래퍼를 만들어 .NET에서 사용하려고합니다. 라이브러리를 포함하면 컴파일러는 변수 유형 (DWORD, LPCSTR 등)에 관한 구문 오류를보고합니다. 한마디로 은 아마 라이브러리 내가 C 라이브러리에서 C++ 사용

extern "C"{ 

    #include "c_lib.h" 

} 

하지만 성공

을 시도하는 대신 C.

의 C++에 있다고 생각한다. Visual Studio 2010을 사용하고 있으므로 프로젝트 설정을 변경해야합니다.

도움이 될 것입니다.

감사합니다.

+1

'DWORD'와'LPCSTR'는 C++과 아무 관련이 없습니다. 헤더 파일이 누락 된 것 같습니다. –

+2

C++/CLR로 포장 할 예정입니까? 그렇지 않다면 왜 C 함수 시그니처를 가져올 수 없습니까? – crashmstr

+8

먼저 _12_에 ''이 포함되어 있습니까? –

답변

6

<windows.h>을 포함해야하지만 잘못했다고 생각합니다. .NET에서 라이브러리를 사용하려면 C++ 래퍼를 만들 필요가 없습니다. DllImport은 C#에서 직접 호출해야하는 모든 C 함수가 될 수 있습니다.

Using the DllImport Attribute

+0

모두 덕분에 빈 프로젝트를 사용하여 windows.h가 포함되지 않았고 C++ 래퍼가 제 경우에 DLLImport 지시문을 사용하는 최종 솔루션이 아니 었습니다. – autodev101

관련 문제