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

时间:2024-03-08 19:36:39

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

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

 image

查看事件探查器:

弹出应用程序: 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的加载过程,以便确定原因:

image

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

解决办法:

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

重新运行,解决问题。