±±¾©Ê¯ÓÍ»¯¹¤Ñ§Ôº2026ÄêÑо¿ÉúÕÐÉú½ÓÊÕµ÷¼Á¹«¸æ
²é¿´: 1963  |  »Ø¸´: 9
µ±Ç°Ö»ÏÔʾÂú×ãÖ¸¶¨Ìõ¼þµÄ»ØÌû£¬µã»÷ÕâÀï²é¿´±¾»°ÌâµÄËùÓлØÌû

swustxxl

½ð³æ (ÕýʽдÊÖ)

[½»Á÷] ¡¾ÇóÖú¡¿VS2005ÊýÖµ¼ÆËã³ÌÐòµ÷ÊÔ¡¾¼±Ç󣡣¡£¡£¡¼Ó½ð±Ò¡¿

Êý¾ÝÄâºÏ³ÌÐò£¬ÔËÓÃÏֳɵĶ¯Ì¬Á´½Ó¿âLBFGS·¨£¨´øÔ¼ÊøµÄ£©£¬²Ù×÷ƽ̨ÊÇVS2005£¬½«ÆäÒýÈëMFCµ¥Îĵµ´íÎóµü³ö

ÎÒ½«Ëã·¨³ÌÐò±àÈëÁËCLoginDlg.CPPÖУ¬µã»÷button1£¬³ÌÐò¹Ø±Õ¶Ô»°¿òµ¯³öµ¥Îĵµ½çÃæ£¬ºǫ́ͬʱÍê³ÉÔËËã¡£

void CLoginDlg::OnBnClickedButton1()
{
        // TODO: ÔÚ´ËÌí¼Ó¿Ø¼þ֪ͨ´¦Àí³ÌÐò´úÂë
        _tmain();
        CDialog::OnOK();

}
ÒÔÉÏÊÇCbuttonµÄ´úÂ룬±àÒëÊ×Ïȱ¨´íµÄÊÇ_tmain()λÖã¬ËµµÄÊDz»½ÓÊÜ0¸ö²ÎÊý£¬Õâ¸ö¹«¹²º¯ÊýµÄÔ­ÐÍΪ
int _tmain(int argc, _TCHAR* argv[])
{
     .........
     .........
     return 0;
}
ÎҸɴàÖ±½Ó¶ÔÔ­º¯Êý×öÁ˸͝£¬ÈçÏ£º
int _tmain()
{
     .........
     .........
     return 0;
}
ÔÚ½â¾ö·½°¸ÖÐÓÖÌí¼ÓÁËlbfgsb.libÎļþ£¬ÓÚÊDZàÒë¡¢Á´½Ó¶¼¿Éͨ¹ý£¬ÉõÖÁ¿ÉÒÔÔËÐУ¬µ«µã»÷button1£¬³ÌÐò¾Í»á±¨´í£¬µ¯³öÈç϶Ի°¿ò£º




Ëã·¨µÄ×î³õ³ÌÐòÊÇÕýÈ·µÄ£¬¿É±àÒë¿ÉÁ´½Ó¿ÉÔËÐУ¬½á¹ûÕýÈ·£»ÎÒ¿ÉÒÔн¨Ò»¸öWIN32¿ØÖÆÌ¨Ó¦ÓóÌÐòÖØÏÖËã·¨³ÌÐòµÄЧ¹û¡£Ö¤Ã÷Ëã·¨³ÌÐò±¾ÉíÎÞÎó£¬Ó¦¸ÃÊǶ¯Ì¬Á´½Ó¿âÔÚ¼ÓÔØµ½MFC³ÌÐòʱ³öÏÖÁË´íÎó¡£
Ï£ÍûÓиßÊÖÄÜÖ¸µãÒ»ÏÂ~~²»Ê¤¸Ð¼¤

ÒÔÏÂÊÇÎÒµÄMFC³ÌÐò¹ØÓÚÒýÈëËã·¨¶¯Ì¬Á´½Ó¿âºÍÖ´ÐÐÔËËãµÄƬ¶Î£¬×îºó¸½ÉÏÁËWIN32Ëã·¨³ÌÐòºÍÎÒ×Ô¼ºµÄMFC³ÌÐò£º

// LoginDlg.cpp : ʵÏÖÎļþ
//

#include "stdafx.h"
#include "xxl_try2.h"
#include "LoginDlg.h"

//#include "stdafx.h"
#include "iostream"
#include "memory.h"
#include "malloc.h"
#include "windows.h"
#include "math.h"

using namespace std;

// CLoginDlg ¶Ô»°¿ò

IMPLEMENT_DYNAMIC(CLoginDlg, CDialog)

CLoginDlg::CLoginDlg(CWnd* pParent /*=NULL*/)
        : CDialog(CLoginDlg::IDD, pParent)
{

}

CLoginDlg::~CLoginDlg()
{
}

void CLoginDlg:oDataExchange(CDataExchange* pDX)
{
        CDialog:oDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CLoginDlg, CDialog)
        ON_BN_CLICKED(IDC_BUTTON1, &CLoginDlg::OnBnClickedButton1)
END_MESSAGE_MAP()

// CLoginDlg ÏûÏ¢´¦Àí³ÌÐò
// LBFGS.cpp : ¶¨Òå¿ØÖÆÌ¨Ó¦ÓóÌÐòµÄÈë¿Úµã¡£
//¼ÆËãÌݶȱ£´æÔÚgÖУ¬¼ÆËãÄ¿±êº¯ÊýÖµ±£´æÔÚfÖÐ
//nÊDzÎÊý¸öÊý£¬xÊDzÎÊýÏòÁ¿
void fcn2(int n,double *x, double*t, double *y,double &f, double *g ){
        f=0;
        g[0]=0;
        g[1]=0;
        g[2]=0;
        g[3]=0;
        g[4]=0;
        g[5]=0;
        for(int k=0;k         {
                double tmp=y[k]-(x[0]*t[k]*exp(x[1]*t[k])+x[2]*t[k]*exp(x[3]*t[k])+x[4]*t[k]*exp(x[5]*t[k]));
                f+=tmp*tmp;
                g[0]+=-2*tmp*t[k]*exp(x[1]*t[k]);
                g[1]+=-2*tmp*t[k]*x[0]*exp(x[1]*t[k])*t[k];
                g[2]+=-2*tmp*t[k]*exp(x[3]*t[k]);
                g[3]+=-2*tmp*t[k]*x[2]*exp(x[3]*t[k])*t[k];
                g[4]+=-2*tmp*t[k]*exp(x[5]*t[k]);
                g[5]+=-2*tmp*t[k]*x[4]*exp(x[5]*t[k])*t[k];
        }

        return;
}

extern "C" void __declspec(dllimport)  __stdcall lbfgsb(int n,int m,double *x, double *l, double *u, int *nbd, double f, double *g, double factr, double pgtol, double *wa, int *iwa,char *task, int iprint,char *csave,bool *lsave,int *isave, double *dsave);

int main()//int argc, _TCHAR* argv[])
{
        const char dllPath[] = "lbfgsb.dll";

        //¼ÓÔØ¶¯Ì¬¿âÎļþ
        HINSTANCE hLibrary = LoadLibraryA(dllPath);
        if(hLibrary == NULL){
                int error =GetLastError ();
                cout<<"Error of LoadLibrary = "<
                cout<<"Can't find the dll file."<                 FreeLibrary(hLibrary);
                return -1;
        }

        /* £¨Èç¹û»ñµÃÕâ¸ö³ÌÐòµÄ¾ä±ú£©»ñµÃÕýÔÚÔËÐгÌÐòµÄ·¾¶ºÍÎļþÃû*/
        bool exePathOut=true;

        if(exePathOut){
                char exePath[1000] = "\0";
                GetModuleFileNameA(hLibrary,exePath,sizeof(exePath));
                cout<         }

        bool *lsave;
        char *task,*csave,*str;
        int n, m,iprint,*nbd,*iwa, *isave;
        double f, factr, pgtol,*x,*l,*u,*g,*wa,*dsave;
        double t[7]={1,1.5,2,2.5,3,3.5,5};
        double y[7]={10.78,80.35,58.81,43.04,23.05,12.35,6.61};

        iprint = 1;
        factr=1.0E+7;       
        pgtol=1.0E-5;
        f=0.0;

        n=6;
        m=10;

        nbd=new int[n];
        iwa=new int[3*n];
        x=new double[n];
        l=new double[n];//ÉèÖñäÁ¿ÏÂÏÞ
        u=new double[n];//ÉèÖñäÁ¿ÉÏÏÞ
        g=new double[n];
        wa=new double[2*m*n+4*n+12*m*m+12*m];
        dsave=new double[29];
        isave=new int[44];
        str=new char[60];
        csave=new char[60];
        task=new char[60];
        lsave=new bool[16];


        for(int i=0;i         {
                nbd=0;
                l=1.0;
                u=10;
        }

        for(int i=1;i         {
                nbd=0;
                l=1.0;
                u=10;
        }

        for(int i=0;i         {
                x=0.0E0;
        }

        sprintf(task,"%s","START";

        while(1){
                lbfgsb(n,m,x,l,u,nbd,f,g,factr,pgtol,wa,iwa,task,iprint,csave,lsave,isave,dsave);
                strncpy(str,task,2);
                if (strncmp(str,"FG",2)==0)
                {
                        fcn2(7, x,t,y,f, g );
                        continue;
                }
                strncpy(str,task,5);
                if(strncmp(str,"NEW_X",5)!=0)
                {
                        for(int i=0;i                         {
                                cout<<"x["<<                         }
                        break;
                }
        }

        delete[] nbd;
        delete[] iwa;
        delete[] x;
        delete[] l;
        delete[] u;
        delete[] g;
        delete[] wa;

        delete[] lsave;
        delete[] task;
        delete[] csave;
        delete[] str;
        delete[] isave;
        delete[] dsave;

        system("pause";
        return 0;
}

void CLoginDlg::OnBnClickedButton1()
{
        // TODO: ÔÚ´ËÌí¼Ó¿Ø¼þ֪ͨ´¦Àí³ÌÐò´úÂë
        main();
        CDialog::OnOK();

}


ÕâÊdzÌÐò
http://good.gd/767141.htm
ÕâÊÇËã·¨µÄÕýÈ·³ÌÐò
http://good.gd/767144.htm

[ Last edited by swustxxl on 2010-10-20 at 10:47 ]
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

» ±¾Ö÷ÌâÏà¹Ø¼ÛÖµÌùÍÆ¼ö£¬¶ÔÄúͬÑùÓаïÖú:

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

magic7004

½ð³æ (Ö°Òµ×÷¼Ò)

¡ï
ÓàÔó³É(½ð±Ò+1):лл²ÎÓëÓ¦Öú£¡ 2010-10-18 10:33:02
ÁíÍ⣬C++±àÒëÆ÷»á¶Ôº¯Êý¸ÄÃûµÄ¡£Â¥Ö÷¿ÉÒÔÓÃloadlibraryºÍgetprocaddressÀ´µ÷ÓÃDLLÖеĺ¯Êý¡£
Á÷Ã¥²»¿ÉÅ£¬¿ÉŵÄÊÇÁ÷Ã¥ÓÐÎÄ»¯£¬ÓÐÎÄ»¯ÓÖBHµÄÁ÷Ã¥ÎÞµÐ~~£¡
4Â¥2010-10-17 09:29:21
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
²é¿´È«²¿ 10 ¸ö»Ø´ð

magic7004

½ð³æ (Ö°Òµ×÷¼Ò)

¡ï
ÓàÔó³É(½ð±Ò+1):лл²ÎÓëÓ¦Öú£¡ 2010-10-18 10:32:55
Ö±½Óµ÷ÓÃDLLÖеĺ¯Êý£¬ÐèÒªDLLµÄÍ·Îļþ(.h)ºÍ¿âÎļþ(.lib)
Á÷Ã¥²»¿ÉÅ£¬¿ÉŵÄÊÇÁ÷Ã¥ÓÐÎÄ»¯£¬ÓÐÎÄ»¯ÓÖBHµÄÁ÷Ã¥ÎÞµÐ~~£¡
3Â¥2010-10-17 09:27:00
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

Ïë·ÉµÄÖí

ľ³æ (ÕýʽдÊÖ)

¡ï
ÓàÔó³É(½ð±Ò+1):лл²ÎÓëÓ¦Öú£¡ 2010-10-18 10:33:11
ÎÒÖªµÀÒ»¸öÊýÖµ¼ÆËãÀà¿â¡¶VC++ÊýÖµ¼ÆËãÀà¿â¡·²»´í£¡Äã¿ÉÒÔÊÔÊÔ£¡»¹ÓоÍÊÇÄã¿ÉÒÔÁ¬½ÓMatlab£¡
5Â¥2010-10-17 14:25:12
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

swustxxl

½ð³æ (ÕýʽдÊÖ)

ajian04:лл²ÎÓë½»Á÷~ 2010-10-18 13:23:42
ÒýÓûØÌû:
Originally posted by magic7004 at 2010-10-17 09:27:00:
Ö±½Óµ÷ÓÃDLLÖеĺ¯Êý£¬ÐèÒªDLLµÄÍ·Îļþ(.h)ºÍ¿âÎļþ(.lib)

ÎÒÔÚ½â¾ö·½°¸ÖÐÌí¼ÓÁËÒ»¸öÏà¹ØµÄ.libÎļþ£¬»¹ÊDz»ÐС£
ÎÒ°ÑËùÓеĶ«Î÷»¹Ô­µ½ÁË×îԭʼµÄÐÎ̬¡£ÄǸöÕýÈ·µÄËã·¨³ÌÐò²ÉÓõÄÊÇWIN32¿ØÖÆÌ¨Ó¦ÓóÌÐò£¬ÎÒн¨ÁËÒ»¸ö¿ÕµÄWIN32ÏîÄ¿£¬Ö»°ÑËã·¨µÄCPPºÍHÎļþÌí½øÈ¥£¬°Ñ¶¯Ì¬Á´½ÓÏà¹ØµÄÎļþ¿½±´µ½Ïà¹ØÎļþ¼ÐÖУ¬Í¬ÑùÒ²Ìí¼ÓÁË.libÎļþ£¬Ò»ÇÐOKÁË¡£
Ó¦¸ÃÊÇMFC³ÌÐòºÍWIN32³ÌÐòÖ®¼äµÄ²îÒìµ¼Öµı¨´í£¬ÇëÎÊÏÖÔÚ¸ÃÈçºÎ½â¾ö£¿

ÎÒµÄMFC³ÌÐòÊÇ£ºMFCµ¥Îĵµ£¬¾²Ì¬¿â£¬²»Ê¹ÓÃUNCOIDE¡£Ï£ÍûÄܶÔÄãÅжÏÎÊÌâËùÔÚÓÐËù°ïÖú¡£

[ Last edited by swustxxl on 2010-10-17 at 18:45 ]
6Â¥2010-10-17 18:37:51
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] ÕÒµ÷¼Á +7 ³þÇÇÇÇ 2026-04-01 7/350 2026-04-05 09:07 by dick_runner
[¿¼ÑÐ] 081700£¬311£¬Çóµ÷¼Á +12 ¶¬Ê®Èý 2026-04-04 13/650 2026-04-05 08:43 by qlm5820
[¿¼ÑÐ] 306·Ö²ÄÁÏÓ뻯¹¤Çóµ÷¼Á +6 Àè°ÉÀ²À²ÄãºÜÓÐà 2026-04-03 6/300 2026-04-04 23:59 by ¹û¶³´óÍõ
[¿¼ÑÐ] 385·Ö ÉúÎïѧ£¨071000£©Çóµ÷¼Á +9 qf626 2026-04-01 9/450 2026-04-04 18:10 by macy2011
[¿¼ÑÐ] 309Çóµ÷¼Á +4 ¿ìÀÖµÄС°×¸ë 2026-04-04 5/250 2026-04-04 15:55 by cql1109
[¿¼ÑÐ] 317·Ö Ò»Ö¾Ô¸½­ÄÏ´óѧ »¯Ñ§¹¤³Ìѧ˶ Çóµ÷¼Á +6 YinTai 2026-04-03 6/300 2026-04-03 22:30 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] 295Çóµ÷¼Á +3 ÉÐټѽ 2026-04-03 4/200 2026-04-03 21:23 by zhq0425
[¿¼ÑÐ] 310Çóµ÷¼Á +18 ÕùÈ¡¾Åµã˯ 2026-03-30 18/900 2026-04-03 18:35 by lsÁõ˧
[¿¼ÑÐ] ÎåÒØ´óѧÍÁľ¹¤³ÌÕе÷¼ÁÉú2026 +3 wyutj 2026-03-31 4/200 2026-04-03 18:21 by zengxj_7201
[¿¼ÑÐ] ¿¼Ñе÷¼Á +8 ²»°®ºÈÒûÁÏ 2026-04-03 8/400 2026-04-03 16:40 by Mistake-J
[¿¼ÑÐ] ר˶085601Çóµ÷¼Á +7 suyifei 2026-04-03 8/400 2026-04-03 14:00 by ÐÀϲ777
[¿¼ÑÐ] Ò»Ö¾Ô¸ÏÃÃÅ´óѧ²ÄÁϹ¤³Ìר˶354ÕÒµ÷¼Á£¡£¡£¡ +8 ±´ß±µ±µ 2026-03-30 8/400 2026-04-03 09:41 by hypershenger
[¿¼ÑÐ] Ò»Ö¾Ô¸±±¾©¿Æ¼¼´óѧ²ÄÁÏѧ˶328·ÖÇóµ÷¼Á +6 1¶Îʱ¼ä 2026-03-31 7/350 2026-04-02 13:57 by 3041
[¿¼ÑÐ] 08¿ªÍ·¿´¹ýÀ´£¡£¡£¡ +4 wwwwffffff 2026-03-31 6/300 2026-04-02 11:42 by ¾ùÖµ»Ø¹é
[¿¼ÑÐ] ¿¼Ñе÷¼Á +12 Amber00 2026-03-31 12/600 2026-04-02 09:04 by sanrepian
[¿¼ÑÐ] 08ÉúÎïÓëҽҩר˶³õÊÔ346ÕÒµ÷¼Á +6 dianeeee 2026-04-01 7/350 2026-04-02 08:23 by guoweigw
[¿¼ÑÐ] ÉúÎïÓëÒ½Ò©¿¼Ñе÷¼Á +5 Ìúº©º©123425 2026-03-31 5/250 2026-04-01 18:01 by syh9288
[¿¼ÑÐ] 08¹¤¿Æ275Çóµ÷¼Á£¬¿É¿ç¿¼¡£ +5 AaAa7420 2026-03-31 5/250 2026-04-01 15:21 by 159357hjz
[¿¼ÑÐ] 0855»úе³õÊÔ280Çóµ÷¼Á +3 kazenotori 2026-03-31 3/150 2026-04-01 10:08 by JourneyLucky
[¿¼ÑÐ] 318Çóµ÷¼Á +10 ³Â³¿79 2026-03-30 10/500 2026-03-31 17:37 by 544594351
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û