前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分享—PCL 编译成.net可用的 DLL

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

作者头像
点云PCL博主
发布2019-07-31 14:45:15
1.6K0
发布2019-07-31 14:45:15
举报
文章被收录于专栏:点云PCL点云PCL

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

可以进行单步调试了

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-01-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 点云PCL 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档