读书人

请教C#怎么去调C++写的dll

发布时间: 2012-01-08 22:48:50 作者: rapoo

请问C#如何去调C++写的dll
对C++不熟,别人写的模块,我去调。

在vs2003下用C#做界面调C++的模块,他提供了dll lib 和.h

另请问C++中如何调dll(是include .h和引用lib吗?)

不知道怎么调,新手,请指教,感谢!

[解决办法]
IplImage是一个结构,它应该定义在给你的.h文件里。你在C#创建一个一样的结构就可以了,然后在导入函数中把声明换成你的结构。
结构声明时一般需要加[StructLayout(LayoutKind.Sequential)]。在msdn里有C++和C#数据类型的对应表,按照表里的定义你换一下就好了。
[解决办法]

C# code
    struct IplImage    {        int Size;        /* sizeof(IplImage) */        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]        string ColorModel; /* ignored by OpenCV */        IntPtr Roi;/* image ROI. if NULL, the whole image is selected */        IntPtr MaskROI; /* must be NULL */        IntPtr ImageId;    /* ditto */        IntPtr TileInfo; /* ditto */        string ImageData;  /* pointer to aligned image data */        string ImageDataOrigin; /* pointer to very origin of image data                               (not necessarily aligned) -                               needed for correct deallocation */    } 

读书人网 >C#

热点推荐