kernel32是Windows的内核库,与VC无关的,因为程序显示字符确实要调用Windows的kernel32.DLL,但VC不会覆盖系统内核库的呀。我的程序确实指定了使用宽字符,输出部分的API是硬性调用W版本的,难道是这个问题?不过,如果你的Windows是XP以上,都有宽字符处理功能的呀。
输出部分就用了这个函数,没有别的了:
哦,你那信息显示是这个API函数有问题:GetCurrentConsoleFontEx(output, true, &font_info);
我删掉它试试,没用到的。Ex,这个东西难道跟Windows版本有关?我用的Win7,你用的XP,报告正好是这个函数在Kernel32.DLL中没找到。2楼说报告病毒,但最早那个程序没用这个函数呀。
这个是删掉那个函数的,再看看:
[ 本帖最后由 TonyDeng 于 2011-10-9 01:46 编辑 ]
输出部分就用了这个函数,没有别的了:
程序代码:
// 在当前光标位置输出文本 VOID WriteText(const wstring& text) const { DWORD WriteNumber; WriteConsoleW(output, text.c_str(), text.size(), &WriteNumber, NULL); }
哦,你那信息显示是这个API函数有问题:GetCurrentConsoleFontEx(output, true, &font_info);
我删掉它试试,没用到的。Ex,这个东西难道跟Windows版本有关?我用的Win7,你用的XP,报告正好是这个函数在Kernel32.DLL中没找到。2楼说报告病毒,但最早那个程序没用这个函数呀。
这个是删掉那个函数的,再看看:
test_Console.exe.zip
(11 KB)
[ 本帖最后由 TonyDeng 于 2011-10-9 01:46 编辑 ]
授人以渔,不授人以鱼。