QQ登录

只需一步,快速开始

249上位机VC MFC动态加载动态库函数

[ 复制链接 ]

249上位机VC MFC动态加载动态库函数

249上位机VC MFC动态加载动态库函数
249上位机VC MFC动态加载动态库函数
功能展示
微软提供的动态库如user32.DLL有许多功能很炫函数没有申明无法直接使用,如设置窗口透明度的函数SetLayeredWindowAttributes()在VC6.0中没有申明,我们要使用就得动态的调用,当前例程实现动态获取此函数的指针,设置窗口透明度方法,效果如图,点击按钮就可设置窗口透明效果;
要点提示
获取动态库内函数的指针可以使用函数GetProcAddress()此函数检索指定的动态链接库(DLL)中的输出库函数
函数原型:FARPROCGetProcAddress(HMODULE hModule, LPCSTR lpProcName);
参数说明:
1.hModule:包含此函数的DLL模块的句柄。LoadLibrary、AfxLoadLibrary 或者GetModuleHandle函数可以返回此句柄。
2.lpProcName:包含函数名的以NULL结尾的字符串,或者指定函数的序数值。如果此参数是一个序数值,它必须在一个字的底字节,高字节必须为0。
如果函数调用成功,返回值是DLL中的输出函数地址。
如果函数调用失败,返回值是NULL。得到进一步的错误信息,可调用函数GetLastError
实现功能
1.新建基于对话框的应用程序
2.拖拽一按钮<动态加载动态库函数/使窗口透明>关联函数
  1. void CGkbc8Dlg::OnTransparent()
  2. {
  3.         SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,
  4.                          GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0x80000);//0x80000让窗口具有透明特效
  5.         HINSTANCE hInst=LoadLibrary("User32.DLL");
  6.          if(hInst)
  7.          {
  8.                  typedef BOOL (WINAPI*SetLayeredWindowAttributes)(HWND,COLORREF,BYTE,DWORD);
  9.                  SetLayeredWindowAttributes Fun=NULL;
  10.                  //取得SetLayeredWindowAttributes函数指针,该函数控制透明度
  11.                  Fun=(SetLayeredWindowAttributes)GetProcAddress(hInst,"SetLayeredWindowAttributes");
  12.                  if(Fun)
  13.                          Fun(this->GetSafeHwnd(),0,128,2);
  14.                  FreeLibrary(hInst);
  15.          }
  16. }
复制代码
0x80000 对应WS_EX_LAYERED
我们来演示下功能实现的整个过程

请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:249.上位机VC MFC动态加载动态库函数.rar 
文件大小:131.33 KB  售价:10金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!


回复

使用道具 举报

快速回复 返回列表 客服中心 搜索