这是关于PCL 编译成.net可用的DLL ,来自于ccjia的分享,希望大家都能够踊跃的敢于分享,
有兴趣的可以将分享写成word发到dianyunpcl@163.com
1 新建c++工程
2、点击完成即可创建c++ dll工程,解决方案如下:
3、添加头文件:LibraryPCLDLL.h 文件到头文件文件夹下,如下
4、配置pcl环境(具体参考pcl配置过程)
5 解决 MAX和MIN函数的冲突问题
在stdafx.h 文件中添加一行代码:#defineNOMINMAX
6、编辑相关函数
7、生成dll文件
以上7歩即生成了c++的dll文件了
下面就是对该dll的调用了
8 、在当前解决方案中添加一个WPF项目
将编译好的LibraryPCLDLL.dll文件复制到WPF项目中
将属性设置为:始终复制
9、在MainWindow.xaml.cs文件中,添加如下指定函数入口的代码
[DllImport("LibraryPCLDLL.dll",EntryPoint = "GetPoissonPolygonMesh")]
static extern IntPtrGetPoissonPolygonMesh(IntPtr InPoints_left, IntPtr InPoints_right, int number_left,int number_right, ref int OutNumber);
一定注意:函数参数变量的对应类型:(可以查阅相应的C++与C#数据类型对应资料)
10、在 public MainWindow函数中添加对函数的调用
IntPtr pts =GetPoissonPolygonMesh(Marshal.UnsafeAddrOfPinnedArrayElement(pts_left, 0),Marshal.UnsafeAddrOfPinnedArrayElement(pts_right, 0), number_left,number_right, ref number);
同样需要注意类型的对应关系,特别是数组和指针类型
11、对于在两个项目在一个解决方案下的情况,是可以进行调试的,操作如下
完成第11歩即可实现在线调试了。
12、调试演示
当前已经进入c++的函数了
可以进行单步调试了
都是个人的一些总结经验 有不当之处请批评指正