分享—PCL 编译成.net可用的 DLL

这是关于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++的函数了

可以进行单步调试了

都是个人的一些总结经验 有不当之处请批评指正

原文发布于微信公众号 - 点云PCL(dianyunPCL)

原文发表时间:2018-01-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券