나는 다음과 같은 방법을 수출 관리되지 않는 C++ DLL을 DLL 관리 보내기 C# 관리 코드에서 이러한 메서드를 호출하는 최상의 성능 방법이 될까요?는 바이트 [] [] C inbetween ++ 관리되지 않는 DLL 및 C#을
편집 : 다음 구현을 수행하고 작동하지만 가장 효율적인 방법입니다.
C++ :
ERASURE_API void encode_w(unsigned char * inpbuf,int k, unsigned char * outpbuf,
int nfecs, unsigned int * block_nums, size_t num_block_nums, size_t sz)
{
unsigned char ** inp= new unsigned char*[k];
for(i=0;i<k;i++){
inp[i] = inpbuf+i*sz;
}
unsigned char ** outp= new unsigned char *[nfecs];
for(i=0;i<nfecs;i++){
outp[i] =outpbuf+i*sz;
}
encode(inp,outp,block_nums,num_block_nums,sz);
delete [] inp;
delete [] outp;
}
C 번호 :
[DllImport("erasure.dll")]
public static extern void encode_w([In] byte[] inpbuf,int k,[Out] byte[] outpbuf,
int nfecs, uint[] block_nums, int num_block_nums, int sz);
은 inp와 outp가 겹치는 것과 같은 배열을 가리킬 수 있습니까? –
옵션이 될 수 있습니다. – rkatiyar