从 Windows NT 开始,Windows 所有版本都完全用 Unicode 来构建。也就是说,所有我们调用的 ANSI 函数,在内部执行时,只是将传入的 ANSI 字符串转换为 Unicode,然后再调用 Unicode 函数去实现真正功能。所以直接使用 Unicode 函数来编写自己代码,在程序执行效率上,是要比调用 ANSI 高的多。
在 Windows 编程中,建议使用 Unicode 函数进行项目的开发,以调高程序内部执行效率。
我们在自己开发动态链接库DLL的时候,可是导出两种函数:
ANSI 版本函数在实现的时候,只执行传入参数的 Unicode 转换,然后调用 Unicode 版本函数进入真正功能的实现。
Windows 函数和 C 运行库中的函数在这方面并不相同。C运行库函数在执行 ANSI 函数时,内部不会调用 Unicode 版函数,而是完全独立实现功能;执行 Unicode 函数时,也不会在内部调用 ANSI 函数,也是独立执行功能。