在windows系统中使用Ceres非线性优化库:(二)调用Ceres库

(一)安装Ceres库

(二)调用Ceres库

        1.编写DLL库WrapCeres

                1.1.编写要导出的代码

                1.2.编译链接配置

                1.3.编译

        2.用C#调用DLL库WrapCeres

                2.1.C#与C/C++之间类型的对应关系

                2.2.Dllimport详解

                2.3.深入讨论C#调用C++的方法

                2.4.在WPF中实际调用WrapCeres.dll

(三)发布应用程序

(二)调用Ceres库

上面我们其实已经运行过Ceres里面自带的一些例程了,比如helloworld、helloworld_static等。大家感兴趣的话,可以去深入学习一下这些官方例程,我这里就不多说了。

 值得注意的是,这些Ceres官方例程都是应用程序项目,就是这些例程编译出来的exe文件是可以直接运行的。如果大家想要直接编写简单的C++应用程序来调用Ceres库实现一些简单的功能,可以借鉴这些官方例程依葫芦画瓢写自己的程序。然而通常情况,我们是在一个非常复杂的Windows桌面应用程序中来调用Ceres库实现某个数学计算任务。Windows桌面应用一般是基于.NET的C#程序,比如WPF桌面应用。我们知道一个C++应用程序可以直接调用其他C++库(lib静态库和dll动态库都可以),而C#应用程序只能通过导出方式调用C++的dll动态库。当C#应用程序要调用很多个不同的C++库,而且这些C++库中既有动态库又有静态库时就比较麻烦了。一般是将我们要使用的这些C++库集成到一个专门的C++ DLL中,如果条件允许的话最好采用静态链接方式将这些C++库集成到这个专门的C++ DLL中。下面就以Ceres库调用为例来介绍如何编写这个专门的C++ DLL,以及如何在C#中调用这个专门的C++ DLL。

1.编写DLL库WrapCeres

方便起见,我是直接在上面的ceres-windows解决方案下面新建了一个C++ DLL空项目,取名叫WrapCeres。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值