VC 使用DLL

作者在 2009-02-15 20:16:04 发布以下内容

1、静态链接
使用该方法,必须制定要链接的lib文件。和接口说明的*.h文件

2、动态链接
该方法用LoadLibrary载入dll,并且使用GetProcAddress得到dll中允许应用程序调用的函数的地址
在最后还要释放该dll:FreeLibrary

DllHmodule = LoadLibrary("H:\\MyVC\\your.dll");
 if( !DllHmodule )
 {
  AfxMessageBox("调用Dll失败!");
  CDialog::OnOK();
 }

 YOURFUNCDEFINE MyFunc = (YOURFUNCDEFINE)GetProcAddress(DllHmodule,"MyFunc");
 BOOL bLoadOk = FALSE;
 if( MyFunc )
 {
              (*MyFunc)();
 }

typedef UINT (CALLBACK* LPFNDLLFUNC1)(DWORD,UINT);
...

HINSTANCE hDLL;               // Handle to DLL
LPFNDLLFUNC1 lpfnDllFunc1;    // Function pointer
DWORD dwParam1;
UINT  uParam2, uReturnVal;

hDLL = LoadLibrary("MyDLL");
if (hDLL != NULL)
{
   lpfnDllFunc1  = (LPFNDLLFUNC1)GetProcAddress(hDLL,
                                           "DLLFunc1");
   if (!lpfnDllFunc1)
   {
      // handle the error
      FreeLibrary(hDLL);
      return SOME_ERROR_CODE;
   }
   else
   {
      // call the function
      uReturnVal = lpfnDllFunc1(dwParam1, uParam2);
   }
}


3.打开CD_ROM与关闭CD_ROM

  方法是先向工程中加入多媒体组件。选择Project|Add to Project|Components and Controls菜单项,在弹出的Components and Controls Gallery对话框中选择Visual C++ Components文件夹,然后选择Windows Multimedia library项,按Insert按钮。在之后的消息框中按"是"。这样,在工程中加入了了多媒体组件,在stdafx.h文件中加入了两行语句:

  #include

  // CG: The following line was added by the Windows Multimedia component.

  #pragma comment(lib, "winmm.lib")

  然后分别为IDC_OPENCDROM和IDC_CLOSECDROM按钮添加BN_CLICKED消息处理函数如下:

  void CControlDlg::OnOpencdrom() //打开光驱

  {

  mciSendString("Set cdAudio door open wait", NULL, 0, NULL);

  }

  void CControlDlg::OnClosecdrom() //关闭光驱

  {

  mciSendString("Set cdAudio door closed wait", NULL, 0, NULL);

  }

vc | 阅读 5522 次
文章评论,共0条
游客请输入验证码