龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

VC学习:全局共享变量的困惑(2)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
//进行付值 haveinit=100; noinit=100; sprintf(Text,"haveinit=%dnoinit=%d",haveinit,noinit); MessageBox((HWND)msg-wParam,Text,"付值情况",MB_OK); } } return CallNextHookEx(NULL, code, wParam, lPa

//进行付值
  haveinit=100;
  noinit=100;
  sprintf(Text,"haveinit=%d noinit=%d",haveinit,noinit);
  MessageBox((HWND)msg->wParam,Text,"付值情况",MB_OK);
  }
  }
  return CallNextHookEx(NULL, code, wParam, lParam);
  }
  __declspec(dllexport) void Test(HWND hWnd)
  {
  char Text[50];
  //寻找任意对话框
  HWND hTest=FindWindow("#32770","");
  //取得对话框的线程句柄
  HWND handle=GetWindowThreadProcessId(hTest,NULL);
  HANDLE hLib= GetModuleHandle("dll.dll");
  //添加钩子
  HHOOK hook = SetWindowsHookEx(WH_CALLWNDPROC,TestProc,hLib ,handle);
  if(hook)
  {
  //发送消息激活钩子
  SendMessage(hTest,WM_NULL,(WPARAM)hWnd,0);
  //卸载钩子
  UnhookWindowsHookEx(hook);
  //输出结果
  sprintf(Text,"haveinit=%d noinit=%d",haveinit,noinit);
  MessageBox(hWnd,Text,"输出结果",MB_OK);
  }
  }

/////////////////////////////////////////////////////
  //res.rc

  /////////////////////////////////////////////////////
  //
  // Dialog
  //

  ID_DLG DIALOGEX 0, 0, 186, 90
  STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP |
  WS_CAPTION | WS_SYSMENU
  CAPTION "Dialog"
  FONT 8, "MS Shell Dlg", 400, 0, 0x1
  BEGIN
  DEFPUSHBUTTON "测试",IDOK,26,25,50,14
  PUSHBUTTON "关闭",IDCANCEL,99,26,50,14
  END

  ///////////////////////////////////////
  //resource.h

  #define ID_DLG 101

  将上面的dll.c编译成dll文件,main.c编译成exe文件,程序运行结果便可以说明一切。

  以上代码可以通过网址http://ggg82.go.nease.net/document/g_shared.rar下载。

精彩图集

赞助商链接