当前位置:编程学习 > C#/ASP.NET >>

C# 封装C++函数

typedef struct ZN_MACAU_PlateIDConfig // 车牌识别SDK配置结构
{
int nMinPlateWidth;
int nMaxPlateWidth;
bool bVertCompress;
bool bIsFieldImage;
bool bOutputSingleFrame;
bool bTwoRowYellow;        
int nNightBeginHour;
int nNightBeginMinute;
int nNightEndHour;
int nNightEndMinute;
bool bIsBGRColorOrder;
unsigned char cInChannels;
int gsl;
char szProvince[4];
bool bufferDelay;
}ZN_MACAU_PlateIDConfig;

// 缺省车牌识别SDK配置
const ZN_MACAU_PlateIDConfig c_defConfig = {40, 400, false, false, true, true, 25, 30, -1, 30, true, 32, 5, 0,false};

int __stdcall ZN_MACAU_InitPlateIDSDK(const ZN_MACAU_PlateIDConfig *pPlateConfig = &c_defConfig);

如何封装? 如何调用啊?谢谢 --------------------编程问答-------------------- 用类就可以了。定义个类。那些都是属性。 --------------------编程问答-------------------- 很简单,看下这个就彻底会了http://dongtingyueh.blog.163.com/blog/static/461945320124239215442/ --------------------编程问答--------------------
引用 1 楼 lye2000000_super 的回复:
用类就可以了。定义个类。那些都是属性。
   那个结构体我是会封装  但是这个函数我不太明白  尤其是里面的参数怎么声明啊? int __stdcall ZN_MACAU_InitPlateIDSDK(const ZN_MACAU_PlateIDConfig *pPlateConfig = &c_defConfig); --------------------编程问答-------------------- 参数是ZN_MACAU_PlateIDConfig对象,你传这个对象过去就行了
也可以不传参数,不传参数的话是默认值 &c_defConfig(这个是c++定义的变量) --------------------编程问答--------------------
引用 4 楼 gxingmin 的回复:
参数是ZN_MACAU_PlateIDConfig对象,你传这个对象过去就行了
也可以不传参数,不传参数的话是默认值 &c_defConfig(这个是c++定义的变量)

那我直接 这样声明行吗?       public static extern  int ZN_MACAU_InitPlateIDSDK(ZN_MACAU_PlateIDConfig pPlateConfig);

头文件有这个:const ZN_MACAU_PlateIDConfig c_defConfig = {40, 400, false, false, true, true, 25, 30, -1, 30, true, 32, 5, 0,false};  在C#中 这个我该怎么写? --------------------编程问答-------------------- 一下C++函数如何用C#封装
      int __stdcall ZN_MACAU_RecogStillLPImage(char *pbyBits,  int nWidth, int nHeight,
                                 ZN_MACAU_PlateIDResult pResult[MAX_PLATE_CANDIDATE],
                                 int *nResultNum, const ZN_MACAU_RECT *prcRange = NULL,
                                  bool bVertFlip = false,bool bDwordAligned = false, 
                                char Channel =0);
这样封装好像有问题:
    public static extern int  ZN_MACAU_RecogStillLPImage                                 
                  (IntPtr pbyBits,int nWidth,int nHeight,ref ZN_MACAU_PlateIDResult pResult,                                            
                   ref int nResultNum, ref ZN_MACAU_RECT prcRange ,bool bVertFlip ,
                   bool bDwordAligned , string cChannel);

大家可以指导一下吗? --------------------编程问答-------------------- 用类就可以了。定义个类。那些都是属性。 --------------------编程问答--------------------
引用 7 楼 wowmboy 的回复:
用类就可以了。定义个类。那些都是属性。


我是针对于某个函数来说的 
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,