且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Windows Live Writer启动错误:无法定位程序输入点IsThreadDesktopComposited 于动态链接库 USER32.dll 上

更新时间:2022-09-10 14:26:00


今天安装了Windows LIve Writer,运行它,出现错误信息如下:

 Windows Live Writer启动错误:无法定位程序输入点IsThreadDesktopComposited 于动态链接库 USER32.dll 上

查看事件探查器:

弹出应用程序: WindowsLiveWriter.exe - 无法找到入口: 无法定位程序输入点 IsThreadDesktopComposited 于动态链接库 USER32.dll 上。

没办法,只好先看看User32.dll了:

IsCharAlphaA    0x77d3e5ad    0x0002e5ad    407 (0x197)    user32.dll    C:\WINDOWS\system32\user32.dll    
IsCharAlphaNumericA    0x77d4f209    0x0003f209    408 (0x198)    user32.dll    C:\WINDOWS\system32\user32.dll    
IsCharAlphaNumericW    0x77d2c0f9    0x0001c0f9    409 (0x199)    user32.dll    C:\WINDOWS\system32\user32.dll    
IsCharAlphaW    0x77d1f2ae    0x0000f2ae    410 (0x19a)    user32.dll    C:\WINDOWS\system32\user32.dll    
IsCharLowerA    0x77d3b851    0x0002b851    411 (0x19b)    user32.dll    C:\WINDOWS\system32\user32.dll    
IsCharLowerW    0x77d4f152    0x0003f152    412 (0x19c)    user32.dll    C:\WINDOWS\system32\user32.dll    
IsCharUpperA    0x77d37045    0x00027045    413 (0x19d)    user32.dll    C:\WINDOWS\system32\user32.dll    
IsCharUpperW    0x77d69fb7    0x00059fb7    414 (0x19e)    user32.dll    C:\WINDOWS\system32\user32.dll    
IsChild    0x77d1970e    0x0000970e    415 (0x19f)    user32.dll    C:\WINDOWS\system32\user32.dll    
IsClipboardFormatAvailable    0x77d2f127    0x0001f127    416 (0x1a0)    user32.dll    C:\WINDOWS\system32\user32.dll    
IsDialogMessage    0x77d3c651    0x0002c651    417 (0x1a1)    user32.dll    C:\WINDOWS\system32\user32.dll    
IsDialogMessageA    0x77d3c651    0x0002c651    418 (0x1a2)    user32.dll    C:\WINDOWS\system32\user32.dll    
IsDialogMessageW    0x77d2d8c2    0x0001d8c2    419 (0x1a3)    user32.dll    C:\WINDOWS\system32\user32.dll    
IsDlgButtonChecked    0x77d25d75    0x00015d75    420 (0x1a4)    user32.dll    C:\WINDOWS\system32\user32.dll    
IsGUIThread    0x77d69f77    0x00059f77    421 (0x1a5)    user32.dll    C:\WINDOWS\system32\user32.dll    
IsHungAppWindow    0x77d69a39    0x00059a39    422 (0x1a6)    user32.dll    C:\WINDOWS\system32\user32.dll    
IsIconic    0x77d1be27    0x0000be27    423 (0x1a7)    user32.dll    C:\WINDOWS\system32\user32.dll    
IsMenu    0x77d31328    0x00021328    424 (0x1a8)    user32.dll    C:\WINDOWS\system32\user32.dll    
IsRectEmpty    0x77d1bf26    0x0000bf26    425 (0x1a9)    user32.dll    C:\WINDOWS\system32\user32.dll    
IsServerSideWindow    0x77d1da1d    0x0000da1d    426 (0x1aa)    user32.dll    C:\WINDOWS\system32\user32.dll    
IsWindow    0x77d1b933    0x0000b933    428 (0x1ac)    user32.dll    C:\WINDOWS\system32\user32.dll    
IsWindowEnabled    0x77d1bda2    0x0000bda2    429 (0x1ad)    user32.dll    C:\WINDOWS\system32\user32.dll    
IsWindowInDestroy    0x77d1da74    0x0000da74    430 (0x1ae)    user32.dll    C:\WINDOWS\system32\user32.dll    
IsWindowUnicode    0x77d1c59e    0x0000c59e    431 (0x1af)    user32.dll    C:\WINDOWS\system32\user32.dll    
IsWindowVisible    0x77d1c465    0x0000c465    432 (0x1b0)    user32.dll    C:\WINDOWS\system32\user32.dll    
IsWinEventHookInstalled    0x77d1b1a5    0x0000b1a5    427 (0x1ab)    user32.dll    C:\WINDOWS\system32\user32.dll    
IsZoomed    0x77d1c2b2    0x0000c2b2    433 (0x1b1)    user32.dll    C:\WINDOWS\system32\user32.dll   

我的user32.dll版本为5.1.2600.3099,上面是所有的函数入口,显然,没有IsThreadDesktopComposited,因此可以想见,出现这个错误就不足为怪了。那么看来Windows Live writer加载的DLL不该使用USER32.dll的这个函数,这样,就必须看看DLL的加载过程,以便确定原因:

Windows Live Writer启动错误:无法定位程序输入点IsThreadDesktopComposited 于动态链接库 USER32.dll 上

用VC工具一看,发现是c:\windows\system32\MPRAPI.DLL调用了user32.dll中的IsThreadDesktopComposited函数,而刚好我的XP的user32.dll中没有这个函数,所以发生了错误。

解决办法:

将MPRAPI.DLL改名,如MPRAPI.DLL.bak。

重新运行,解决问题。




本文转自斯克迪亚博客园博客,原文链接:http://www.cnblogs.com/sgsoft/archive/2008/01/17/1043660.html,如需转载请自行联系原作者