1 LastError不能替代函数返回值。
SetConsoleScreenBufferSize调用失败时,使用GetLastError会返回错误。
但是,当其调用成功时,则不会设置LastError为ERROR_SUCCESS。
即:对于这种函数,应当先行判断函数返回值,一旦错误才使用GetLastError得到错误码;而不能简单的使用GetLastError来判断函数是否成功。
2 SetConsoleScreenBufferSize的参数值不符合MSDN的描述。
MSDN上描述:参数应当传入COORD,其X/Y应当至少大于SM_CXMIN/SXCYMIN。
但是实际的情况并非如此,大量的尺寸都会返回87错误。原因未知。32位/64位程序都表现此问题。
测试环境:
WINDOWS SERVER 2003 64
VS2005 BASIC