C#调用C++和opencv生成的dll库文件,其中函数中带有指针
大家好,我用C#调用C++的dll,其中一个函数中有指针,参数的定义在C++中是一个结构体,但是我现在遇到的问题是无法获取托管类型的地址和大小,或无法声明指向它的指针,下面我把这个函数在C++中的定义和我自己转到C#中的定义给大家贴出来,大家帮帮忙,本人属于C++和C#新手。
1. int THFI_Create (short nChannelNum,THFI_Param* pParam)
功能:初始化THFaceImage SDK,只需在应用程序初始化时调用一次
nChannelNum,通道数,用于多线程的通道,每个线程对应一个通道. 每个线程使用的通道ID从0到nChannelNum-1,如通道数为4,那么每个线程使用的合法通道ID为0,1,2,3
pParam,算法参数
Int整型,返回实际成功初始化的通道数
struct THFI_Param
int nMinFaceSize;//min face width size can be detected,default is 50 pixels
int nRollAngle;//max face roll angle,default is 30(degree)
bool bOnlyDetect;//only detect face or not(if it's true,only Detect API is enable,Feature API is disable),defaule is false(Detect API is enable,and Feature API is enable)
DWORD dwReserved;//reserved value,must be NULL
THFI_Param()
nMinFaceSize=50;
nRollAngle=30;
bOnlyDetect=false;
dwReserved=NULL;
[StructLayout(LayoutKind.Sequential)]
public struct THFI_Param
[FieldOffset(0)]
public Int16 nMinFaceSize;
[FieldOffset(2)]
public Int16 nRollAngle;
[FieldOffset(4)]
public Boolean bOnlyDetect;
[FieldOffset(6)]
public UInt32? dwReserved;
[DllImport("THFaceImage.dll", EntryPoint = "THFI_Create", CharSet = CharSet.Auto)]
unsafe static extern int THFI_Create(Int16 nChannelNum, THFI_Param* pParam);
THFI_Create显示错误 CS0208: 无法获取托管类型(“WindowsFormsApplication1.Form1.THFI_Param”)的地址和大小,或无法声明指向它的指针。
0 提建议
邀请回答
编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金
¥ 0
(可追加 ¥500)
支付方式
扫码支付
加载中...
1
条回答
默认
最新
-
Cowboy22
2021-04-21 12:50
关注
您好,我看到您调用THFaceImage.dll, 请问这是哪一家公司的人脸库?
本回答被题主选为最佳回答
, 对您是否有帮助呢?
本回答被专家选为最佳回答
, 对您是否有帮助呢?
本回答被题主和专家选为最佳回答
, 对您是否有帮助呢?
举报
按下Enter换行,Ctrl+Enter发表内容
查看更多回答(0条)