vc++和LINGO编程

 1 #include<iostream>
 2 #include "Lingd11.h"
 3 #pragma comment(lib,"Lingd11.lib")
 4 using namespace std;
 5
 6
 7 int main()
 8 {
 9     char cScript[50];
10     memset(cScript,0,50*sizeof(char));
11
12     pLSenvLINGO pLINGO;
13     pLINGO = LScreateEnvLng();
14     if(!pLINGO)
15     {
16         cout<<"Can‘t create LINGO environment!"<<endl;
17     }
18     double dStatus = 1;
19     int nError = 1;
20
21     nError = LSopenLogFileLng(pLINGO,"Result.log");
22     if(nError)
23     {
24         cout<<"Fail open Log!"<<endl;
25     }
26     double res[6];
27     memset(res,0,6*sizeof(double));
28     double f_num[6] = {60,70,60,50,20,30};
29     int nPointersNow ;
30     //@POINTER(1)
31     nError = LSsetPointerLng(pLINGO,f_num,&nPointersNow);
32     if(nError)
33     {
34         cout<<"Fail transfer memory1!"<<endl;
35     }
36     //@POINTER(2)
37     nError = LSsetPointerLng(pLINGO,res,&nPointersNow);
38     if(nError)
39     {
40         cout<<"Fail transfer memory!2"<<endl;
41     }
42     //@POINTER(2)
43     nError = LSsetPointerLng(pLINGO,&dStatus,&nPointersNow);
44     if(nError)
45     {
46         cout<<"Fail transfer memory!3"<<endl;
47     }
48     //LINGO运行脚本
49     strcpy( cScript, "SET ECHOIN 1 \n TAKE SOLVE.LNG \n GO \n QUIT \n");
50     nError = LSexecuteScriptLng(pLINGO,cScript);
51     if(nError)
52     {
53         cout<<"Fail run LINGO!"<<endl;
54     }
55     LScloseLogFileLng(pLINGO);
56     if(nError || dStatus != LS_STATUS_GLOBAL_LNG)
57     {
58         cout<<"Unable to solve!"<<endl;
59     }
60     LSdeleteEnvLng(pLINGO);
61     double result = 0;
62     for(int i = 0;i < 6;i++)
63     {
64         result += res[i];
65     }
66     cout<<"result: "<<result<<endl;
67
68     system("pause");
69     return 0;
70 }
MODEL:
SETS:
ID/1..6/;
NO(ID):x,num;
ENDSETS
!求解目标;
min=num(3)* x(1)+x(2)+x(3)+x(4)+x(5)+x(6);
!约束条件;
x(6)+x(1)>=num(1);
x(1)+x(2)>=num(2);
x(2)+x(3)>=num(3);
x(3)+x(4)>=num(4);
x(4)+x(5)>=num(5);
x(5)+x(6)>=num(6);
x(1)>=num(1);
DATA:
!把VC中的数据m_Num1,…,m_Num6传递到Lingo中的变量num1,…,num6;
num[email protected](1);
!把Lingo计算的结果和状态分别传到VC中的变量res,dStatus;
@POINTER(2)=x;
@POINTER(3)=@STATUS();
ENDDATA
END 

lingo与高级语言连接(以C++)为例

http://blog.csdn.net/ds1231h/article/details/52383707

lingo与VC混合编程

http://wenku.baidu.com/link?url=4uPZs0tb8qZZMBZXskuJ7Y-PqyMXwlwtetxpILVCbBNadDHmmHrmDwr49OFa8JbgVN2lgUmk7BUVlyJRhII8g490dGTP1lJvz-7civWkmme

lingo和高级语言混合编程

http://blog.chinaunix.net/uid-29764914-id-4459488.html

时间: 2024-10-10 23:44:28

vc++和LINGO编程的相关文章

VC++网络高级编程

内含<VC网络高级编程>电子书 及源码. 第一章.TCP/IP协议:第二章.Winsock网络编程接口:第二章.Visual C++与网络编程:第四章.基本网络编程技术:第五章.Telnet协议的实现:第六章.Http协议的实现:第七章.Ftp协议的实现:第八章.文件下载:第九章.UDP协议的实现: 下载地址:http://download.csdn.net/my VC++网络高级编程,布布扣,bubuko.com

VC++DUIEngine界面编程1--学习编译及配置DUIEngine项目

1. 为什么要用DUIEngine: DUIEngine的作者是:启程软件.在此感谢他为此项目所付出的心血,能为我们这些界面爱好者,奉献了宝贵的时间以及优秀的代码. DUIE的优势为: 1. 作者将金山的BKWin进行了深度改写,从而使之更易于使用和开发.相比传统的WTL而言,DUIE增加了许多窗口特效,如动态缩放窗口,3D界面旋转.从而使开发者能够在较短时间内开发出比较炫丽的界面特效. 2. 结合了MFC及WTL开发者的开发习惯,使开发者能够在较短时间内接受DUIE的开发模式. 3. 作者长时

【转】VC++消息钩子编程

VC++消息钩子编程

VC++动态链接库(DLL)编程深入浅出(zz)

1.概论 先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量.函数或类.在仓库的发展史上经历了"无库-静态链接库-动态链接库"的时代. 静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了.但是若使用DLL,该DLL不必被包含在最终EXE文件中,EXE文件执行时可以"动态"地引用和卸载这个与E

VC的UNICODE 编程

简介 如果你编写的程序是针对非英语国家的用户,如中国.日本.东欧和中东地区,那么你一定要熟悉 UNICODE 字符集.尤其是用 Visual C++/MFC 编写针对上述国家和地区的用户的程序时,如果你想让自己的应用程序得到更广泛的用户,那么必须考虑代码 UNICODE 的兼容性,也就是说它既在 ASCII 模式下运行 ,也能在UNICODE 模式下运行.本文将介绍 UNICODE 的一些基本编程知识,澄清很多人(包括我自己)在这个问题上存在的模糊认识.对于任何使用 Visual C++ 和/或

VC++的Unicode编程

本文来自:http://tech.ddvip.com/2007-03/117395585321221.html 一.什么是Unicode 先从ASCII说起,ASCII是用来表示英文字符的一种编码规范.每个ASCII字符占用1个字节,因此,ASCII编码可以表示的最大字符数是255(00H—FFH).其实,英文字符并没有那么多,一般只用前128个(00H—7FH,最高位为0),其中包括了控制字符.数字.大小写字母和其它一些符号.而最高位为1的另128个字符(80H—FFH)被称为“扩展ASCII

【转】VC++的Unicode编程

转自http://www.cnblogs.com/kex1n/archive/2010/03/15/2286510.html 原始出处http://www.vckbase.com/document/viewdoc/?id=1733 一.什么是Unicode 先从ASCII说起,ASCII是用来表示英文字符的一种编码规范.每个ASCII字符占用1个字节,因此,ASCII编码可以表示的最大字符数是255(00H—FFH).其实,英文字符并没有那么多,一般只用前128个(00H—7FH,最高位为0),

孙鑫vc笔记——多线程编程

1.进程是一个正在运行程序的实例,它从不执行任何东西,只是线程的容器.若要使进程完成某项操作,它必须拥有一个在它的环境中运行的线程,此线程负责执行包含在进程地址空间中的代码. 2.当创建一个进程时,操作系统会自动创建这个进程的第一个线程,即主线程,即执行main函数或winMain函数的线程,main函数或winMain函数是主线程的进入点函数,此后,该线程可以创建其他的线程. 3.系统赋予每个进程独立的虚拟地址空间,对于32位进程来说,这个地址空间2的32次幂即4GB. 4.每个进程有它的私有

VC 中 字符串编程

/* #ifdef WIDECHAR//#ifdef  /#ifndef 具有在本文件内向上溯源性  在上面的可以识别  在下面的不能识别 #endif wchar_t *pszText=L"HelloT_char"; wprintf(L"%s\n",pszText); #else char *pszText="HelloT_char"; printf("单%s\n",pszText); #endif */ 对于wchar_t