因为需要在C#中调用c++ dll(包含类),所以用了一个托管c++类将其包装,但是不知道如何对应参数问题。
bool ReadBlock(int nPosX, int nPosY, int OffsetX, int OffsetY, void* pBuffer);
这个里面的void*是要指向一个数组,整形或者字符型。
然后在托管c++类里面我是这么写的
bool ReadBlock(int nPosX, int nPosY, int OffsetX, int OffsetY, IntPtr pBuffer)
{
return rs->ReadBlock((void*)hBand,nPosX,nPosY,OffsetX,OffsetY,(void*)pBuffer);
}
不知道有没有错,而且也不知道如何在C#中调用,求指教啊!!
------解决方案--------------------
可以在C#中为相同的API创建多个原型定义,同一个参数,即可以定义为int,也可以是stringbuilder或者byte[]。
------解决方案--------------------
rs->ReadBlock((void*)hBand,nPosX,nPosY,OffsetX,OffsetY,(void*)pBuffer);
bool ReadBlock(int nPosX, int nPosY, int OffsetX, int OffsetY, void* pBuffer);
二者参数不一致