ODE识别字,那么程式中所有的MessageBox函式呼叫实际上就是MessageBoxW函式;否则,就是MessageBoxA函式。
执行该程式时,Windows将程式中不同的函式呼叫与不同的Windows动态连结程式库的进入点连结。虽然只有少数例外,但是,在Windows
98中不能执行Unicode版的Windows函式。虽然这些函式有进入点,但通常返回错误代码。应用程式注意这些返回的错误并采取一些合理的动作。
Windows的字串函式
正如前面谈到的,Microsoft
C包括宽字元和需要字串参数的C语言执行时期程式库函式的所有普通版本。不过,Windows复制了其中一部分。例如,下面是Windows定义的一组字串函式,这些函式用来计算字串长度、复制字串、连接字串和比较字串:
ILength = lstrlen (pString) ; pString = lstrcpy (pString1, pString2) ; pString = lstrcpyn (pString1, pString2, iCount) ; pString = lstrcat (pString1, pString2) ; iComp = lstrcmp (pString1, pString2) ; iComp = lstrcmpi (pString1, pString2) ;
这些函式与C程式库中对应的函式功能相同。如果定义了UNICODE识别字,那么这些函式将接受宽字串,否则只接受常规字串。宽字串版的lstrlenW函式可在Windows
98中执行。
在Windows中使用printf
有文字模式、命令列C语言程式写作历史的程式写作者往往特别喜欢printf函式。即使可以使用更简单的命令(例如puts),但printf出现在Kernighan和Ritchie的「hello,
world」程式中一点也不会令人惊奇。我们知道,增强後的「hello,
world」最终还是需要printf的格式化输出,因此我们最好从头开始就使用它。
但有个坏消息:在Windows程式中不能使用printf。虽然Windows程式中可以使用大多数C的执行时期程式库-实际上,许多程式写作者更愿意使用C记忆体管理和档案I/O函式而不是Windows中等效的函式-Windows对标准输入和标准输出没有概念。在Windows程式中可使用fprintf,而不是 |