zoukankan      html  css  js  c++  java
  • 对dll里开放接口的调用(二)

      对dll里提供的接口调用很简单。1)加载dll库  2)取dll中某函数的指针  3)用此指针调用dll里的函数完成相应功能 4)卸载dll库

    知道的同学们可以一瞥而过。怎样是这个面向过程的东西搞得更面向对象一点呢?

    1.构造和析构函数中完成1)和4)的操作。

    CLibDownload::CLibDownload(void):
    m_bTimerDown(false)
    ,m_nTryTimes(1)
    {
    	hDll = LoadLibrary(_T("mfcDll.dll")); 
    }
    
    CLibDownload::~CLibDownload(void)
    {
    	m_bTimerDown = false;
    	m_nTryTimes = 0;
    	FreeLib();
    }
    
    void CLibDownload::FreeLib()
    {
    	if (hDll!=NULL)
    	{
    		FreeLibrary(hDll);
    		hDll=NULL;
    	}
    
    }
    

    3.类中定义函数指针。

    class CLibDownload
    {
    public:
    	CLibDownload(void);
    	virtual ~CLibDownload(void);
    ...
    protected:
    	HINSTANCE hDll;
    public:
    	typedef void (WINAPI *FunDownload)(CStringA,int,CStringA,bool);   
    ...
    }
    

    4.这样使用。

    View Code
    1     FunDownload fun = (FunDownload)GetProcAddress(hDll,"downloadResume");  
    2 fun((CStringA)strUrl,threadCount,(CStringA)strPkg,false);



  • 相关阅读:
    loadrunner11 录制手机App
    http协议调试代理工具介绍
    Loadrunner无法打开IE浏览器问题总结
    loadrunner的安装及问题总结
    Mac常用快捷键
    迭代器
    生成器
    python小程序
    python练习
    python集合
  • 原文地址:https://www.cnblogs.com/chunyou128/p/2221936.html
Copyright © 2011-2022 走看看