DLL加载、获取函数指针。

//Interface.h文件内容如下:

///

#pragma once

#include <windows.h>

 

//function point demo

#define ISOURCOMPANYKEY "IsOurCompanyKey"

typedef INT (WINAPI* IsOurCompanyKey) (VOID);

 

 

class Bluebottle

{

 public:

     Bluebottle(LPCSTR szDllPath) : m_hModule(NULL)

    { 

          m_hModule = LoadLibraryA(szDllPath);

     }

      ~Bluebottle()

     {

           if(m_hModule)

                  FreeLibrary(m_hModule);

           m_hModule = NULL;

      }

      FARPROC GetFunc(LPCSTR szFuncName)

      {

            if(m_hModule)

           {

                  return GetProcAddress(m_hModule, szFuncName);

           }

           return NULL;

      }

protected:

       HMODULE m_hModule;

};

 

//调用过程如下

/

#include <windows.h>

#include <tchar.h>

#include <stdio.h>

#include "Interface.h"

 

//dll name

#define DLLNAME _T("Verify.dll")

 

BOOL main(int argc, PCHAR argv[])

{

          _tprintf(_T("Test called dll's function./n"));

 

          INT32 uI32Ret = -1;

          Bluebottle PingZi(DLLNAME); 

          IsOurCompanyKey pfnOurKey = NULL;

 

          pfnOurKey = (IsOurCompanyKey)PingZi.GetFunc(ISOURCOMPANYKEY);

          if (NULL == pfnOurKey)

         {

              _tprintf(_T("get dll's functions point error."));

             return FALSE;

          }

 

          uI32Ret = pfnOurKey();

           _tprintf(_T("IsOurCompanyKey's ret code:%d/nOver"), uI32Ret);

 

          return TRUE;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值