首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

屏幕保护程序在执行时发生“无法定位程序输入点ChangeWindowMessageFilter于动态链接库USER32.dll上。”异常

2012-04-19 
屏幕保护程序在执行时发生“无法定位程序输入点ChangeWindowMessageFilter于动态链接库USER32.dll上。”错误

屏幕保护程序在执行时发生“无法定位程序输入点ChangeWindowMessageFilter于动态链接库USER32.dll上。”错误
我用Visual Studio 2008写了一个屏幕保护程序,编译没有问题,但是在执行时发生“无法定位程序输入点ChangeWindowMessageFilter于动态链接库USER32.dll上。”错误,请有过类似经验的大侠给点帮助。
----源码如下-----
#include <windows.h>
#include "resource.h" 
#include <commctrl.h>

#pragma comment(lib,"comctl32.lib")
#pragma comment(lib,"Scrnsave.lib")

LRESULT WINAPI ScreenSaverProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)

switch (message) 

case WM_CREATE: 
// 从注册表中获取屏幕保护程序的设置信息 
// 创建一个计时器 
// 处理其它的初始化工作 
return TRUE; 
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hDC = BeginPaint(hWnd, &ps);
SetBkMode(hDC, TRANSPARENT);
SetTextColor(hDC, RGB(0x33, 0xcc, 0));
TextOut(hDC, 150, 150, "www.poroco.com.cn", 15);
EndPaint(hWnd, &ps);
break;
}
case WM_TIMER: 
// 处理绘制工作 
return TRUE; 
case WM_DESTROY: 
// 销毁计时器 
// 处理其它销毁工作 
return TRUE; 
default: 
return DefScreenSaverProc(hWnd, message, wParam, lParam); 

return FALSE; 


BOOL WINAPI ScreenSaverConfigureDialog (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam ) 

switch ( message ) 

case WM_INITDIALOG: 
// 创建设置对话框并初始化各控件值 
return TRUE; 
case WM_COMMAND: 
if ( LOWORD( wParam ) == IDOK ) 

// 将用户的输入保存到注册表中 
EndDialog( hDlg, LOWORD( wParam ) ); 
return TRUE; 

else if( LOWORD( wParam ) == IDCANCEL ) 

EndDialog( hDlg, LOWORD( wParam ) ); 
return TRUE; 

break; 

return FALSE; 


BOOL WINAPI RegisterDialogClasses(HANDLE hInst) 

// 注册特殊窗口类或自定义窗口类 
return TRUE; 
}

[解决办法]
同样的问题~在VC6.0能够正常,用vs2008编译出来的就不正常了。郁闷ing
[解决办法]
ChangeWindowMessageFilter是Vista以后才有的API,

你要LoadLibrary,GetProcAddr才行,编译,链接过了,只能说明你有SDK。

热点排行