首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

在线。C++的代码转C

2013-07-04 
在线求助。。。C++的代码转C#C++函数原型DT_API BYTE* _DTCALL_CameraISP(BYTE *pData)DT_API void _DTCALL_

在线求助。。。C++的代码转C#
C++函数原型
DT_API BYTE* _DTCALL_  CameraISP(BYTE *pData);
DT_API void _DTCALL_  CameraDisplayRGB24(BYTE *pBmp24);
回调函数定义
typedef int (CALLBACK* DS_SNAP_PROC)(BYTE *pImageBuffer);
C++函数
int CALLBACK SnapThreadCallback(BYTE *pBuffer)
{
BYTE *pBmp24 = CameraISP(pBuffer);
if(pBmp24)
{
CameraDisplayRGB24(pBmp24);
}
return TRUE;
}
转成C#代码怎么写?上网查资料都查过了,主要是卡在CameraISP这里。
[解决办法]
byte pBmp24 = (byte)System.Runtime.InteropServices.Marshal.PtrToStructure(CameraISP(pBuffer), typeof(byte));
[解决办法]
主要是c++中的数据类型与c#中的数据类型对应正确。
DT_API BYTE* _DTCALL_  CameraISP(BYTE *pData);

c++                c#
-----------------------------------
BYTE*   ——————>    ref byte

所以转化后为:
ref byte CameraISP(ref byte pData)

当然, BYTE* 也可以使用IntPtr代替。

热点排行