동일한 유형의 구조체 포인터 void ** 목록을 반환하는 DLL을 p-invoking하고 있습니다. From what I've read, 그 목록에서 내 구조를 캐스팅하고 가져 오려면 구조가 관리되지 않는 것으로 간주되어야합니다. 구조체의 주요 범인은 내가 이상 마샬링하는 데 노력하고있어 C 측에서 다음 두 개의 필드가 있습니다"unmanaged"상태로 유지하면서 구조체를 마샬링
char name[1024];
int crop[4];
대부분의 가이드가 문자열을 사용하거나 관리 측면에서 해당 구조체에 [] int로 제안,하지만 그 이러한 필드가 있으면 관리되는 구조로되어 무효화 목록에서 추출 할 수 없습니다.
관리되지 않는 구조체를 제공하는 이러한 필드를 마샬링 할 수있는 다른 방법은 무엇입니까?
구조체를 좀 더 친근하게 만들 때 유용 합니다만, 목록에있는 모든 구조체에 액세스하려면 안전하지 않은 코드가 필요했습니다. – RandomEngy
Marshal.ReadIntPtr()이 void 인 경우 반드시 덮어 줘야합니다. 귀하의 게시물에 목록이 어떻게 구현되었는지 알려주는 세부 정보가 충분하지 않습니다. 링크 된 목록과 포인터의 배열. –
아, 맞습니다. – RandomEngy