前提:我是想禁止CTRL+V 键    非MFC程序 VS 2005    代码如下:long gLoginCore::KeyProc(int   nCode,   WPARAM   wParam,   LPARAM   lParam)  
{
KBDLLHOOKSTRUCT  *hs = (KBDLLHOOKSTRUCT *)lParam;     
if(hs->vkCode == 'V'&& GetAsyncKeyState(VK_CONTROL)< 0)   
{    
HWND   hFocusWin   =   GetFocus();    
char   szClassName[255];   
GetClassName(hFocusWin,   szClassName,   255);    if(!strcmp(szClassName, "WSYQ_ONLINE_RPG"))   
return 1; 
}   
return   CallNextHookEx(g_hOldHook,   nCode,   wParam,   lParam); }
请高手指点

解决方案 »

  1.   

    在stdafx.h中,包含所有头文件之前,加上:
    #define _WIN32_WINNT 0x0400
      

  2.   

    stdafx.h添加#define   _WIN32_WINNT   0x5000 
      

  3.   

    如果没有使用stdafx.h,就在出错的文件中添加。
      

  4.   

    增加编译器版本
    #define  _WIN32_WINNT  0x5000
      

  5.   

    0x5000也太大了吧,主版本号80,Vista才到6。
      

  6.   

    ifndef WINVER // 允许使用 Windows 95 和 Windows NT 4 或更高版本的特定功能。
    #define WINVER 0x0400 //为 Windows98 和 Windows 2000 及更新版本改变为适当的值。
    #endif#ifndef _WIN32_WINNT // 允许使用 Windows NT 4 或更高版本的特定功能。
    #define _WIN32_WINNT 0x0400 //为 Windows98 和 Windows 2000 及更新版本改变为适当的值。
    #endif #ifndef _WIN32_WINDOWS // 允许使用 Windows 98 或更高版本的特定功能。
    #define _WIN32_WINDOWS 0x0410 //为 Windows Me 及更新版本改变为适当的值。
    #endif#ifndef _WIN32_IE // 允许使用 IE 4.0 或更高版本的特定功能。
    #define _WIN32_IE 0x0400 //为 IE 5.0 及更新版本改变为适当的值。
    #endif/*
    Windows XP _WIN32_WINNT>=0x0501
     
    Windows 2000 _WIN32_WINNT>=0x0500
     
    Windows NT 4.0 _WIN32_WINNT>=0x0400
    */ 
      

  7.   


    还是提示错误错误 1 error C2065: “KBDLLHOOKSTRUCT”: 未声明的标识符
    错误 2 error C2065: “hs”: 未声明的标识符
    错误 3 error C2059: 语法错误 : “)”
    错误 4 error C2227: “->vkCode”的左边必须指向类/结构/联合/泛型类型
      

  8.   

    哦 是我的问题 我没有编译stdafx.cpp 问题解决了 谢谢大家