Chinaunix首页 | 论坛 | 博客
  • 博客访问: 123429
  • 博文数量: 16
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 222
  • 用 户 组: 普通用户
  • 注册时间: 2014-07-23 22:32
个人简介

这个博客已经停止更新,请访问blog.mxslly.com

文章分类
文章存档

2018年(4)

2016年(3)

2015年(8)

2014年(1)

我的朋友

分类: C/C++

2014-09-07 11:22:38

 前几天做数学建模的作业,要用到lingo
而且还是要重复调用lingo 的动态规划
于是在百度上找了下怎么用C++调用lingo,结果发现是个坑
于是我就陷进去了,弄了两三天才搞清楚,其中有一天还没睡觉 ……要死了
不过虽然弄明白了,也走了很多弯路,所以要把一些经验记下来,总结下来

我用的是lingo11破解免安装版、vs2012。
打开lingo安装目录下的Programming Samples文件夹,看到有lingod11.h和lingod11.lib。如果要让c++调用lingo,必须include “lingod11.h”和调用lingod11.lib文件(就是加上这行#pragma comment (lib, "Lingd11.lib")),具体的自己百度,废话不多说
参考 
 
当然,你还看到Programming Samples文件夹 下还有很多其他的文件,比如.java的、.cs的.bas的,这说明lingo还提供了其他很多编程环境的接口文件,不只是c++,如果你有兴趣可以自己研究lingo提供 的源代码,注释都是英文的,网上的资料不多,还得靠你自己看 …… 
还有一点就是 lingod11.h和lingod11.lib只是提供了lingo函数的调用接口,具体的实现在安装目录下的很多.dll文件里面,所以如果你用的是免安装破解版,就得把所有的.dll文件复制到c++程序的目录下,否则c++是找不到.dll文件的,也就无法调用了
 下面简单说说怎么在lingo和c++里写调用的代码
只能传递double类型的数据,工作原理大概是共享一个内存中的数据区域
在lingo里用@pointer函数把数据传递给c++或者从C++接受数据
在C++里就复杂一些了,要使用lingod11.h里面定义的 LSsetPointerLng函数实现数据传递。首先要pLSenvLINGO pLINGO;//定义启动lingo的指针。
这里推荐lingo的教程,自己去看

度娘云盘下载
如果程序编好,这里就碰到一个最坑爹的问题,你发现怎么都是运行错误,但是在lingo的UI界面就是可以运行成功。
最后我看了看log文件,原来是

THE MODEL DIMENSIONS EXCEED THE CAPACITY OF THIS VERSION
哈哈哈,原来破解版就是个坑啊,lingo的dll文件根本没有破解,怎么办
到网上找了十几个lingo的版本,甚至连lingo8这种16位的老版本都被我下载了
最后在csdn找到了真正破解可用的lingo11破解dll,资源宝贵啊,我还是拿来共享了,就在?我 的度娘云盘里

 
大家且行且珍惜吧…… 

阅读(6090) | 评论(3) | 转发(1) |
0

上一篇:没有了

下一篇:为你解析Cyanogenmod源代码

给主人留下些什么吧!~~

unixqixiaoxin2019-08-13 22:50:15

madder123:博主,看到你这篇文章很高兴。我也遇到了相同问题,用vs2008调用lingo变量限制为300。我下载你给的这个破解dll,覆盖到原来的dll上,但是发现没有什么效果,博主你用这个破解dll真的有效解决了C++调用lingo变量限制吗?具体怎么操作的?谢谢博主了。

我刚找到解决方案了:不要覆盖Lindo5_0.dll,其他的dll覆盖。

回复 | 举报

unixqixiaoxin2019-08-13 22:34:04

madder123:博主,看到你这篇文章很高兴。我也遇到了相同问题,用vs2008调用lingo变量限制为300。我下载你给的这个破解dll,覆盖到原来的dll上,但是发现没有什么效果,博主你用这个破解dll真的有效解决了C++调用lingo变量限制吗?具体怎么操作的?谢谢博主了。

我也是没有效果。楼主现在解决了吗?

回复 | 举报

madder1232014-09-25 19:58:56

博主,看到你这篇文章很高兴。我也遇到了相同问题,用vs2008调用lingo变量限制为300。我下载你给的这个破解dll,覆盖到原来的dll上,但是发现没有什么效果,博主你用这个破解dll真的有效解决了C++调用lingo变量限制吗?具体怎么操作的?谢谢博主了。