VC中带Ex结尾的函数与不带Ex结尾的函数

来源:百度知道 编辑:UC知道 时间:2024/05/22 08:30:44
我们常在VC中看到有些API函数是以Ex结尾的,而有些函数是不带Ex结尾的。请问微软为什么要这样区分?有什么区别?
比如GetDCEx与GetDC、MoveToEx与MoveTo

首先你说的这些是Windows的API函数,不是VC自己的。

一般来说,不带Ex的函数是简化版,参数较少,运行时会调用带Ex的那个。举例而言:
FindWindow和FindWindowEx

HWND FindWindow(LPCTSTR lpszClassName, LPCTSTR lpszText)
{
return FindWindowEx(NULL, NULL, lpszClassName, lpszText);
}

http://msdn.microsoft.com/en-us/library/ms633499(VS.85).aspx

http://msdn.microsoft.com/en-us/library/ms633500(VS.85).aspx

Ex大多是在Windows 95的时候扩展的。没有Ex的是Windows 95之前用的。现在没有Ex的版本一般都是通过调用Ex版本实现的。比如CreateWindow现在只是一个CreateWindowEx的宏。

带Ex的有的是后来加上去的,作为扩展.

Ex是后来扩展的