관리 코드에서 단락 배열에 대한 포인터를 포함하는 구조를 나타내는 방식에 문제가 있습니다. 해당 필드가 짧은 값의 배열에 대한 포인터는 단순히 때문에 비록 간접적 인 추가 레벨이되도록 하였다 -형식의 배열에 대한 마샬링 (관리되는 C# -> 관리되지 않는 C++)
'shortValues
'에 대한 메모리가 관리되지 않는 코드 내부에 할당
typedef struct
{
short size;
unsigned short** shortValues;
} UnmanagedStruct;
: 구조체는 다음과 같습니다 할당 된 메모리는 호출자 (관리 코드)에서도 볼 수 있습니다. 'size
'필드는 배열의 요소 수를 나타냅니다. 관리 코드에서이를 어떻게 표현합니까?
난 그냥 IntPtr
에 전달할 것이라고 생각한 다음 관리되지 않는 호출이 반환되면 값에 액세스하는 방법을 파악할 수 없습니다.
그 코드는 내게 정확하게 맞습니다. 감사합니다 dtb! 내가주의를 기울이는 동안 다른 질문 하나만해도 될까요? 다른 스레드에 게시했습니다 : http://stackoverflow.com/questions/1323797/marshaling-pointer-to-an-array-of-strings – Dilip
질문 : 답변을 게시하는 것보다 질문을 업데이트하는 것이 좋습니다. 새로운 세부 사항에 대한 질문. 또한, 답변으로 문제가 해결되면 그것을 수락하는 것을 잊지 마십시오! :) – dtb
@dtb : 나는 여기서 눈이 멀어야 만하지만 어떻게 대답을 "수락"합니까? – Dilip