큰 그림 - 일반 C++ 코드 (일부 함수는 네임 스페이스에 넣음)가 있으며이 C++ 항목을 호출해야하는 C# 코드가 있습니다. C++/CLI 래퍼를 작성하는 것이 유일한 방법입니다. 내가 읽은 것을 토대로 reg.C++의 헤더를 사용하고 reg.C++ dll과 연결해 봅니다.C++/CLI 코드에서 HWND를 소개하는 방법은 무엇입니까?
첫 번째 문제는 HWND
입니다. reg.C++에서 그것은 희미한 공기에서 온 것입니다. (심지어 적절하지도 않고 VS가 받아들입니다.) CLI/C++에서을 명시 적으로 추가했습니다. 따라서 추가 할 수있는 경로는 c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include\
(*)입니다.
#include <windef.h>
(C++/CLI 코드)이 코드에는 winnt.h
이 포함되어 있으며이 파일에 오류가 있습니다. 나는 reg.C++를 CLI/C++ 코드에 포함 시켰다고 생각한다.
그렇다면 C++/CLI에 대한 정의는 HWND
입니까?
(*)이 디렉토리는 reg.C++ 프로젝트에서 VS가 HWND
이라는 정의를 찾았 기 때문에이 디렉토리입니다.
업데이트 나중에 Windows Development Kit 8.0을 설치하고 windows.h
을 포함하는 경로를 가리 키도록 변경했지만 포함 된 파일에서 오류가 발생했습니다. 비교를 위해 동료에게 내게 빈 프로젝트를 만들어달라고 요청한 후 솔루션에 추가했습니다. 그래서 지금은 VS/CLI 프로젝트를 제대로 만들 수 없다는 VS의 셋업에 이상한 점이 있다고 생각합니다. C#에서
reg.C++ 코드에서 아무 것도 캐스트 할 수 없습니다. 고정되어 있기 때문에 (수정할 수는 없습니다). C++/CLI에서는 HWND가 C++/CLI에서 VS에 대해 알 수없는 형식이기 때문에 HOWD를 IntPtr에 캐스트 할 수 없습니다. – greenoldman