누군가가 이것을 도와 줄 수 있기를 바랍니다. 저는 주로 C# 개발자이므로 C 및 C++ 기술이 좋지 않습니다. 나는 큰 응용 프로그램의 플러그인 인 기본 C DLL이 있습니다. 나는 gcc를 사용하여 리눅스에서 windows 용 dll을 으로 컴파일한다.C에서 C#으로 혼합 모드 C++ 브리지 만들기?
원시 DLL에서 D3DSurface를 만들 때 혼합 모드 C++ dll에서 함수를 호출하고 Hwnd/handle을 사용하여 의 표면을 가리키는 포인터를 전달하려고합니다. 그런 다음 혼합 모드 C++에서 내 C# 관리 코드를 호출해야합니다.
예를 들어, C에서 다음을 원합니다. C#에서
Hwnd handle;
LPDIRECT3DSURFACE d3dtarg;
SurfaceCreated(handle, d3dtarg);
나는
public static class D3DInterop
{
public static void SurfaceCreated(IntPtr handle, IntPtr surface)
{
//do work
}
}
나는 C++에서 빨아 때문에, 나는 그냥 내가 코드에 필요한 누군가가 나에게의 예를 들어 줄 수 있는지 알고 싶은 혼합 모드 어셈블리에서 호출이 원하는 혼합 모드 dll에 대해. 나는 을 directx 헤더가있는 혼합 모드 dll을 컴파일 할 필요가 없으므로 거기에 'C'LPDIRECT3DSURFACE를 일반 포인터로 캐스팅 할 수있는 방법이 있습니까? C#에서는 어쨌든 IntPtr을 사용합니다.