Today, I got below error when I run a chm in Vista.
At first, I think the local file has corrupted. So I had downloaded a new file from Internet. Yeah, new file can open successfully.
Sudden, I had noticed old file and new file have the same size. It means old file hasn’t corrupted I think. Why?
I had run windbg and attached hh.exe.
Stack:
000ef438 7656073f 76573c9f 00000000 00000000 ntdll!KiFastSystemCallRet
000ef43c 76573c9f 00000000 00000000 00000000 USER32!NtUserWaitMessage+0xc
000ef470 76572dc0 00120a7c 00000000 00000001 USER32!DialogBox2+0x202
000ef498 7659cd48 76540000 002f7108 00000000 USER32!InternalDialogBox+0xd0
000ef538 7659d2ca 00000000 00000000 ffffffff USER32!SoftModalMessageBox+0x69f
000ef688 7659d3fc 000ef694 00000028 00000000 USER32!MessageBoxWorker+0x2c7
000ef6e0 7659d4a6 00000000 002f6fb8 002f79b8 USER32!MessageBoxTimeoutW+0x7f
000ef714 7659d654 00000000 000a7000 000a70b0 USER32!MessageBoxTimeoutA+0xa1
000ef734 7659d6c6 00000000 000a7000 000a70b0 USER32!MessageBoxExA+0x1b
000ef750 61ad6b2f 00000000 000a7000 000a70b0 USER32!MessageBoxA+0x45
000ef784 61aa4ba5 0000101b 000a7000 00000000 hhctrl!MsgBox+0x4a
000ef9b8 61aa4ed9 001d0000 002d2bc4 764894dc hhctrl!doInternalWinMain+0x587
000ef9d0 001d17f2 001d0000 002d2bc4 001d3378 hhctrl!doWinMain+0x39
000efafc 001d19b9 001d0000 00000000 002d2bc4 hh!WinMain+0xb3
000efb8c 764ad0e9 7ffdb000 000efbd8 777f19bb hh!_initterm_e+0x1a1
000efb98 777f19bb 7ffdb000 76ef126d 00000000 kernel32!BaseThreadInitThunk+0xe
000efbd8 777f198e 001d1b2f 7ffdb000 00000000 ntdll!__RtlUserThreadStart+0x23
000efbf0 00000000 001d1b2f 7ffdb000 00000000 ntdll!_RtlUserThreadStart+0x1b
0:000> da 002d2bc4
002d2bc4 "D:\document\Core\Microsoft? Wind"
002d2be4 "ows? Internals, Fourth Edition M"
002d2c04 "icrosoft Windows Server? 2003, W"
002d2c24 "indows XP, and Windows 2000-Mark"
002d2c44 "-2004.chm"
But Local old file name is Microsoft® Windows® Internals, Fourth Edition Microsoft Windows Server™ 2003, Windows XP, and Windows 2000-Mark-2004.chm in the directory. From here, we know MS converts ® and ™ to native code failed and uses ? replace it. The result is OS finds file Microsoft? Windows? Internals, Fourth Edition Microsoft Windows Server? 2003, Windows XP, and Windows 2000-Mark-2004.chm failed, and popups above dialog.I had downloaded new file name is Microsoft – Microsoft Windows Internals Fourth Edition(2004).chm. So it hasn’t convert character set issue.
0:000> lmvm hh
start end module name
001d0000 001d7000 hh (pdb symbols) e:\symsvr\hh.pdb\2A0A84E460CA47D7B78C14B65EDBD2F31\hh.pdb
Loaded symbol image file: C:\Windows\hh.exe
Image path: C:\Windows\hh.exe
Image name: hh.exe
Timestamp: Thu Nov 02 17:11:18 2006 (4549B636)
CheckSum: 0001019E
ImageSize: 00007000
File version: 6.0.6000.16386
Product version: 6.0.6000.16386
File flags: 0 (Mask 3F)
File OS: 40004 NT Win32
File type: 1.0 App
File date: 00000000.00000000
Translations: 0409.04b0
CompanyName: Microsoft Corporation
ProductName: HTML Help
InternalName: HH 1.41
OriginalFilename: HH.exe
ProductVersion: 6.0.6000.16386
FileVersion: 6.0.6000.16386 (vista_rtm.061101-2205)
FileDescription: Microsoft® HTML Help Executable
LegalCopyright: © Microsoft Corporation. All rights reserved.
MS social MSDN site has people ask this issue too.
I had checked other common modules provided in default Vista. All of them hadn’t developed in Unicode mode.
Compared with develop a new OS it’s easy. But MS hasn’t done it.
What is UE? It’s UE I think.
Written By opqit(opqit@hotmail.com) 06/29/2010