首页 > Windows SDK, Windows开发 > wsprintf居然对缓冲区有长度限制

wsprintf居然对缓冲区有长度限制

需要在程序中动态生成一个HTML文件,于是尝试用wsprintfA来进行格式化操作,可是结果却很奇怪,仅仅只能写出来一部分,后来仔细一看,居然是1024个字节,查了一下才知道,wsprintf居然对缓冲区有长度限制,可以改用sprintf函数代替。

另一个奇葩点:好久不用MSDN,最近打开MSDN,老提示“帮助正在更新,可能需要几分钟……”,这个进度条一直在闪动,就是没完没了,还卡CPU。试了N次都是这样,网上有的说需要改注册表,可怎么改都不管用啊!尼玛后来想了好久,发现是因为我把控制面板“区域和语言”中的“格式”设置成了“英语(美国)”,擦,改回简体中文就能打开MSDN了。

第三个奇葩点:在Win7下写Win32 SDK程序,可能是加了32位ICO图标的原因,界面类似那种Windows 2000的风格(在Windows 7就没有Areo效果了,按钮也很丑),于是加了下面一段代码:

#pragma comment(linker,	"/manifestdependency:\"type='win32' name='"\
						"Microsoft.Windows.Common-Controls' "\
						"version='6.0.0.0' processorArchitecture='x86' "\
						"publicKeyToken='6595b64144ccf1df' language='*'\"")

于是界面好看了,后来我把程序拿到XP下运行,怎么都运行不起来,死活想不明白啊,也没任何提示。想了好久,可能是InitCommonControls的原因,于是加上这句果然就好了,但程序中并没有用到高级控件啊~~测试发现就是上一句#pragma comment(linker命令造成的……


觉得文章还不错?点击此处对作者进行打赏!


本文地址: 程序人生 >> wsprintf居然对缓冲区有长度限制
作者:代码疯子(Wins0n) 本站内容如无声明均属原创,转载请保留作者信息与原文链接,谢谢!


更多



  1. 瀚海
    2013年5月14日15:16 | #1

    这问题倒是没注意,不过wsprintf不支持浮点数格式化,郁闷了很久,最后用sprintf格式化就好

    [回复]

  1. 本文目前尚无任何 trackbacks 和 pingbacks.