分类: WINDOWS
2006-07-19 14:46:34
时常有字打不出来,也懒得拆了,有个码表,一查就知道了
#include
int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
FILE *infp, *outfp;
wchar_t lk, lv;
wchar_t key[8];
wchar_t value[256];
char ckey[8], cvalue[256];
if ((infp = _wfopen(L"C:\\WINNT\\System32\\winwb86.MB", L"rb")) == NULL)
{
perror("C:\\WINNT\\System32\\winwb86.MB");
return 1;
}
if ((outfp = fopen("C:\\winwb86.txt", "w")) == NULL)
{
perror("C:\\winwb86.txt");
return 1;
}
fseek(infp, 0x393de, SEEK_SET);
while (fread(&lk, sizeof(lk), 1, infp) == 1)
{
fread(key, sizeof(key[0]), lk, infp);
lk = WideCharToMultiByte(936, 0, key, lk, ckey, sizeof(ckey), 0, 0);
fread(&lv, sizeof(lv), 1, infp);
fread(value, sizeof(value[0]), lv, infp);
lv = WideCharToMultiByte(936, 0, value, lv, cvalue, sizeof(cvalue), 0, 0);
lv == 2 && fprintf(outfp, "%-4.*s%.*s\n", lk, ckey, lv, cvalue);
}
fcloseall();
return 0;
}
![]() |
|