有个DLL  delphi写的.
想用MFC 调用这个DLL 里面的几个功能.,100分

解决方案 »

  1.   

    MFC:
    1:LoadLibary();
    2:GetProAddress();
    3:FreeLibary();
      

  2.   

    MFC:
    1:LoadLibary();
    2:GetProAddress();
    3:FreeLibary();
      

  3.   

    demo code: typedef int (*LPFUN_FN)(OPERATE_TYPE,  VARIANT&, WORD& );
    HINSTANCE hDLL = NULL;
    LPFUN_FN lpFn = NULL;
    hDLL = ::LoadLibrary(_T("ParaDB.dll"));
    if (hDLL != NULL)
    {
    VARIANT var;
    WORD nRows = 0;
    lpFn = (LPFUN_FN)::GetProcAddress(hDLL, "t_comm");
    lpFn(SELECT_TYPE,  var, nRows);
    T_COMM *pComm = (T_COMM*)var.parray->pvData;
    for (int i=0; i<nRows; i++)
    {
    //pStation[i].chName;
    //pStation[i].iID;
    } ::VariantClear(&var);
    }
    ::FreeLibrary(hDLL);
      

  4.   


    HINSTANCE hInst = LoadLibrary("IDM_PictureProcessDLL.dll"); if(hInst == NULL)
    return ; typedef bool (*SAVEPICTURE)(CString sFileName,//图片名称,包含路径
                            CWnd *pWnd,//要抓图的窗口句柄
                    CRect rect,//要抓图的矩形范围
                    int nPictureType,//0表示bmp,1表示jpg
        CDC *pDC);
    SAVEPICTURE SavePicture = (SAVEPICTURE)GetProcAddress(hInst,"SavePicture"); if(SavePicture == NULL)
    return; CRect ClientRect;
    ::GetClientRect(m_hWndMDIClient,&ClientRect);
    bool bRes = SavePicture(sFileName,&m_ChartCtrl,ClientRect,nFiletype,m_ChartCtrl.GetDC());
    if(bRes)
    MessageBox("保存成功","提示",MB_ICONINFORMATION); FreeLibrary(hInst);
      

  5.   

    MFC:
    1:LoadLibary();
    2:GetProAddress();
    3:FreeLibary();
      

  6.   

    MFC:
    1:LoadLibary();
    2:GetProAddress();
    3:FreeLibary();
      

  7.   

    MFC:
    1:LoadLibary();
    2:GetProAddress();
    3:FreeLibary();
      

  8.   

    MFC:
    1:LoadLibary();
    2:GetProAddress();
    3:FreeLibary();
    看看MFC中的加载动态库
      

  9.   

    typedef int (*LPFUN_FN)(OPERATE_TYPE, VARIANT&, WORD& );这样写的不一定行的VC6里面默认是 __cdecl ,而 DELPHI 里默认是 __stdcall
    要定义函数应该加上
    typedef int (__stdcall* LPFUN)(.....)楼主,首先你知不知道这个dll里面有哪些函数可以调用?参数表是什么,函数名又是什么?
    你有没有查过?
      

  10.   

    恩,LoadLibrary加载动态库,然后GetProcAddress取出函数地址,就能调用了。
      

  11.   

    MFC:
    1:LoadLibary();
    2:GetProAddress();
    3:FreeLibary();
    VC6里面默认是 __cdecl ,而 DELPHI 里默认是 __stdcall
    要定义函数应该加上
    typedef int (__stdcall* LPFUN)(.....)楼主,首先你知不知道这个dll里面有哪些函数可以调用?参数表是什么,函数名又是什么?
    你有没有查过?
      

  12.   

    1:LoadLibary();
    2:GetProAddress();
    3:FreeLibary();