vc函数资料

合集下载

vcmfc编程各种窗口句柄获取函数详解

vcmfc编程各种窗口句柄获取函数详解

AfxGetMainWndAfxGetMainWnd获取自身窗口句柄HWND hWnd = AfxGetMainWnd()->m_hWnd;GetT opWindow函数功能:该函数检查与特定父窗口相联的子窗口z序(Z序:垂直屏幕的方向,即叠放次序),并返回在z序顶部的子窗口的句柄。

函数原型:HWND GetT opWindow(HWND hWnd);参数:hWnd:被查序的父窗口的句柄。

如果该参数为NULL,函数返回Z序顶部的窗口句柄。

返回值:如果函数成功,返回值为在Z序顶部的子窗口句柄。

如果指定的窗口无子窗口,返回值为NULL。

GetForegroundWindow函数功能:该函数返回当前系统的前台窗口的窗口句柄。

函数原型:HWND GetForegroundWindow(VOID)返回值:函数返回前台窗回的句柄。

GetActiveWindow函数功能:该函数可以获得与调用该方法的线程的消息队列相关的活动窗口的窗口句柄(就是取得当前进程的活动窗口的窗口句柄)。

函数原型:HWND GetActiveWindow(VOID)返回值:返回值是与调用线程的消息队列相关的活动窗口的句柄。

否则,返回值为NULL。

GetSafeHwnd函数功能:获取某个窗口对象(CWnd的派生对象)指针的句柄(H WND)时,最安全的方法是使用GetSafeHwnd()函数。

通过下面的例子来看其理由:CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到资源管理器HWND hwnd = pwnd->m_hwnd; //得到它的H WND这样的代码当开始得到的pwnd为空的时候就会出现一个“General protection error”,并关闭应用程序,因为一般不能对一个NULL指针访问其成员,如果用下面的代码:CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到资源管理器HWND hwnd = pwnd->GetSafeHwnd(); //得到它的HWND就不会出现问题,因为尽管当pwnd是NULL时,GetSafeHwnd仍然可以用,只是返回NULLIsWindowVisible函数功能:该函数获得给定窗口的可视状态。

vc++库函数及其头文件

vc++库函数及其头文件

#include <assert.h>//设定插入点#include <ctype.h>//字符处理#include <errno.h>//定义错误码#include <float.h>//浮点数处理#include <iso646.h> //对应各种运算符的宏#include <limits.h>//定义各种数据类型最值的常量#include <locale.h>//定义本地化C函数#include <math.h>//定义数学函数#include <setjmp.h> //异常处理支持#include <signal.h> //信号机制支持#include <stdarg.h> //不定参数列表支持#include <stddef.h> //常用常量#include <stdio.h>//定义输入/输出函数#include <stdlib.h>//定义杂项函数及内存分配函数#include <string.h>//字符串处理#include <time.h>//定义关于时间的函数#include <wchar.h>//宽字符处理及输入/输出#include <wctype.h>//宽字符分类传统C++#include <fstream.h>//改用<fstream>#include <iomanip.h>//改用<iomainip>#include <iostream.h>//改用<iostream>#include <strstrea.h>//该类不再支持,改用<sstream>中的stringstream ————————————————————————————————标准C++#include <algorithm>//STL 通用算法#include <bitset>//STL 位集容器#include <cctype> //字符处理#include <cerrno>//定义错误码#include <cfloat>//浮点数处理#include <ciso646> //对应各种运算符的宏#include <climits>//定义各种数据类型最值的常量#include <clocale>//定义本地化函数#include <cmath>//定义数学函数#include <complex>//复数类#include <csignal> //信号机制支持#include <csetjmp> //异常处理支持#include <cstdarg> //不定参数列表支持#include <cstddef> //常用常量#include <cstdio>//定义输入/输出函数#include <cstdlib>//定义杂项函数及内存分配函数#include <cstring>//字符串处理#include <ctime>//定义关于时间的函数#include <cwchar>//宽字符处理及输入/输出#include <cwctype>//宽字符分类#include <deque>//STL 双端队列容器#include <exception>//异常处理类#include <fstream>//文件输入/输出#include <functional>//STL 定义运算函数(代替运算符)#include <limits>//定义各种数据类型最值常量#include <list>//STL 线性列表容器#include <locale> //本地化特定信息#include <map>//STL 映射容器#include <memory> //STL通过分配器进行的内存分配#include<new> //动态内存分配#include <numeric> //STL常用的数字操作#include <iomanip>//参数化输入/输出#include <ios>//基本输入/输出支持#include <iosfwd>//输入/输出系统使用的前置声明#include <iostream>//数据流输入/输出#include <istream>//基本输入流#include <iterator> //STL迭代器#include <ostream>//基本输出流#include <queue>//STL 队列容器#include <set>//STL 集合容器#include <sstream>//基于字符串的流#include <stack>//STL 堆栈容器#include <stdexcept>//标准异常类#include <streambuf>//底层输入/输出支持#include <string>//字符串类#include <typeinfo> //运行期间类型信息#include <utility>//STL 通用模板类#include <valarray> //对包含值的数组的操作#include <vector>//STL 动态数组容器————————————————————————————————C99增加的部分#include <complex.h>//复数处理#include <fenv.h>//浮点环境#include <inttypes.h>//整数格式转换#include <stdbool.h>//布尔环境#include <stdint.h>//整型环境#include <tgmath.h>//通用类型数学宏头文件ctype.h字符处理函数: 本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换----------------------------------------字符测试是否字母和数字isalnum是否字母isalpha是否控制字符iscntrl是否数字isdigit是否可显示字符(除空格外) isgraph是否可显示字符(包括空格) isprint是否既不是空格,又不是字母和数字的可显示字符ispunct是否空格isspace是否大写字母isupper是否16进制数字(0-9,A-F)字符isxdigit字符大小写转换函数转换为大写字母toupper转换为小写字母tolower头文件local.h地区化: 本类别的函数用于处理不同国家的语言差异。

VC函数大全

VC函数大全

VC 函数大全1.API之网络函数WNetAddConnection创建同一个网络资源的永久性连接WNetAddConnection2创建同一个网络资源的连接WNetAddConnection3创建同一个网络资源的连接WNetCancelConnection结束一个网络连接WNetCancelConnection2结束一个网络连接WNetCloseEnum结束一次枚举操作WNetConnectionDialog启动一个标准对话框,以便建立同网络资源的连接WNetDisconnectDialog启动一个标准对话框,以便断开同网络资源的连接WNetEnumResource枚举网络资源WNetGetConnection获取本地或已连接的一个资源的网络名称WNetGetLastError获取网络错误的扩展错误信息WNetGetUniversalName获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称WNetGetUser获取一个网络资源用以连接的名字WNetOpenEnum启动对网络资源进行枚举的过程2.API之消息函数BroadcastSystemMessage将一条系统消息广播给系统中所有的顶级窗口GetMessagePos取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置GetMessageTime取得消息队列中上一条消息处理完毕时的时间PostMessage将一条消息投递到指定窗口的消息队列PostThreadMessage将一条消息投递给应用程序RegisterWindowMessage获取分配给一个字串标识符的消息编号ReplyMessage答复一个消息SendMessage调用一个窗口的窗口函数,将一条消息发给那个窗口SendMessageCallback将一条消息发给窗口SendMessageTimeout向窗口发送一条消息SendNotifyMessage向窗口发送一条消息3.API之文件处理函数CloseHandle关闭一个内核对象。

VC播放声音函数PlaySound和sndPlaySound

VC播放声音函数PlaySound和sndPlaySound
pszSound参数指定了注册表或WIN.INI中的系统事件的别名。
SND_ALIAS_ID
pszSound参数指定了预定义的声音标识符。
SND_ASYNC
用异步方式播放声音,PlaySound函数在开始播放后立即返回。
SND_FILENAME
pszSound参数指定了WAVE文件名。
可以看出,sndPlaySound不能直接播放声音资源。要用该函数播放WAVE文件,可按下面的方式调用:
sndPlaySound("MYSOUND.WAV",SND_ASYNC);
1、直接播出声音文件:
PlaySound("c:\\win95\\media\\The Microsoft Sound.wav", NULL, SND_FILENAME | SND_ASYNC);
注意:参数中的路径使用两个连续的反斜杠转义代表一个反斜杠。
2、把声音文件加入到资源中,然后从资源中播放声音:
Visual C++支持WAVE型资源,用户在资源视图中单击鼠标右键并选择Import命令,然后在文件选择对话框中选择The Microsoft Sound.wav文件,则该文件就会被加入到WAVE资源中。假定声音资源的ID为IDR_STARTWIN,则下面的调用同样会输出启动声音:
PlaySound((LPCTSTR)IDR_STARTWIN, AfxGetInstanceHandle(), SND_RESOURCE | SND_ASYNC);
pszSound参数是WAVE资源的标识符,这时要用到hmod参数。
SND_SYNC
同步播放声音,在播放完后PlaySound函数才返回。

关于vc++时间函数的总结

关于vc++时间函数的总结

MFC提供了两个日期和时间类CTime和CTimeSpan,分别代表相对时间和绝对时间。

CTime是基于格林威治平均时间(GMT)的,本地的时间由环境变量TZ决定。

CTimeSpan代表了时间间隔。

CTime类由下列成员函数:CTime()创建一个CTime对象。

GetCurrentTime()由当前时间创建一个CTime对象。

GetTime()由CTime对象返回一个time_t变量。

GetYear()获取CTime对象代表的年。

GetMonth()获取CTime对象代表的月。

GetDay() 获取CTime对象代表的日期。

GetHour() 获取CTime对象代表的小时。

GetMinute()获取CTime对象代表的分。

GetSecond() 获取CTime对象代表的秒。

GetDayOfWeek() 获取CTime对象代表的周日,1代表周日,2代表周-等等。

Format() 将字符串转换成一个基于本地时区的格式字符串。

FormatGmt() 将字符串转换成一个基于UTC(世界时)的格式字符串。

operator = 赋予新的时间。

operator + 增加CTime和CTimeSpan对象。

operator –减小CTime和CTimeSpan对象。

operator += CTime对象加一个CTimeSpan对象。

operator -= CTime对象减一个CTimeSpan对象。

operator == 比较两个绝对时间是否相等。

operator != 比较两个绝对时间是否不相等。

operator < 比较两个绝对时间,是否前一个大于后一个。

operator > 比较两个绝对时间,是否前一个小于后一个。

operator >= 比较两个绝对时间,是否前一个大于等于后一个。

operator <= 比较两个绝对时间,是否前一个小于等于后一个。

把收获总结如下:首先看几个函数的原型的声明(在time.h中):clock_t clock( void ) clock_t是用来保存时间的数据类型,是long 型double difftime(time_t time1, time_t time0); 取时间间隔的函数time_t time(time_t * timer); 日历时间函数char * asctime(const struct tm * timeptr); 将tm 类的时间结构转化为固定时间格式char * ctime(const time_t *timer); 将日历时间转化为固定时间格式time_t mktime(struct tm * timeptr); 以年、月、日、时、分、秒等分量保存的时间结构struct tm * gmtime(const time_t *timer); 将日历时间转化为格林尼治时间struct tm * localtime(const time_t * timer); 将日历时间转化为当地时间tm 的定义:struct tm {int tm_sec; /* 秒–取值区间为[0,59] */int tm_min; /* 分- 取值区间为[0,59] */int tm_hour; /* 时- 取值区间为[0,23] */int tm_mday; /* 一个月中的日期- 取值区间为[1,31] */int tm_mon; /* 月份(从一月开始,0代表一月)- 取值区间为[0,11] */int tm_year; /* 年份,其值等于实际年份减去1900 */int tm_wday; /* 星期–取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推*/int tm_yday; /* 从每年的1月1日开始的天数–取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推*/int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。

vs2013vc自定义函数的解释说明

vs2013vc自定义函数的解释说明

vs2013vc自定义函数的解释说明
VS2013VC是指Visual Studio 2013中的Visual C++开发环境。

在该环境中,你可以创建自定义函数来实现你所需要的功能。

自定义函数是一种有特定功能的代码块,可以接受输入参数并返回一个值。

它可以帮助你在程序中组织重复的代码、提高代码的复用性和可读性。

在VS2013VC中创建自定义函数的步骤如下:
1. 打开Visual Studio 2013,选择新建项目。

2. 选择Visual C++,然后选择你所需要的项目类型(如控制台应用程序、Windows桌面应用程序等),填写项目名称和保存路径,点击确定。

3. 在生成的项目文件中,找到源文件,一般是以.cpp为扩展名的文件,双击打开。

4. 在源文件中,找到你希望添加自定义函数的位置,可以在函数之外定义自己的函数,也可以在主函数之前或之后。

5. 写下函数的定义,包括函数的返回类型、函数名、参数列表和函数体。

例如:
```
int Add(int a, int b)
{
return a + b;
}
```
6. 在需要调用该函数的地方,使用函数名和参数列表来调用该函数。

例如:
```
int result = Add(5, 3);
```
以上就是使用VS2013VC创建和使用自定义函数的基本步骤。

你可以根据实际需求自定义更多的函数来实现不同的功能。

记得在编写自定义函数时考虑参数类型和返回值类型的匹配关系,以及在函数内部实现所需的业务逻辑。

VC++库函数大全

VC++库函数大全
原型: char *fgets( char *string, int n, FILE *stream );
int fputs( const char *string, FILE *stream );
功能: 文件字符串读写。
原型: int fprintf( FILE *stream, const char *format [, argument ]...);
功能: 打开和关闭流式文件。
原型: int fgetc( FILE *stream );
int getc( FILE *stream );
int fputc( int c, FILE *stream );
int putc( int c, FILE *stream );
功能: 从文件中读一个字符,或向文件中写一个字符。
原型: int isspace(int c);
功能: 如果c为空格、制表符、回车换行符等则返回非0值,否则返回0。
原型: int tolower(int ch);
int toupper(int ch);
功能: 将字符转换为小写或大写字符。
2.目录操作函数,用于在程序中处理文件目录系统,原型均在头文件direct.h中。
功能: 在指定内存单元中查找字符。。
原型: void *memcpy( void *dest, const void *src, size_t count );
void *memmove( void *dest, const void *src, size_t count );
功能: 复制一段给定的内存单元内容。memcpy()与memmove()的复制方向不同,这在源空间和目标空间有重叠时特别重要。

VC++API函数大全

VC++API函数大全

CombineRgn将两个区域组合为一个新区域CombineTransform驱动世界转换。

它相当于依顺序进行两次转换CreateCompatibleDC创建一个与特定设备场景一致的内存设备场景CreateDC为专门设备创建设备场景CreateEllipticRgn创建一个椭圆CreateEllipticRgnIndirect创建一个内切于特定矩形的椭圆区域CreateIC为专用设备创建一个信息场景CreatePolygonRgn创建一个由一系列点围成的区域CreatePolyPolygonRgn创建由多个多边形构成的区域。

每个多边形都应是封闭的CreateRectRgn创建一个矩形区域CreateRectRgnIndirect创建一个矩形区域CreateRoundRectRgn创建一个圆角矩形DeleteDC删除专用设备场景或信息场景,释放所有相关窗口资源DPtoLP将点阵从设备坐标转换到专用设备场景逻辑坐标EqualRgn确定两个区域是否相等ExcludeClipRect从专用设备场景的剪裁区中去掉一个矩形区。

矩形内不能进行绘图ExcludeUpdateRgn从专用设备场景剪裁区去掉指定窗口的刷新区域ExtCreateRegion根据世界转换修改区域ExtSelectClipRgn将指定区域组合到设备场景的当前剪裁区FillRgn用指定刷子填充指定区域FrameRgn用指定刷子围绕指定区域画一个外框GetBoundsRect获取指定设备场景的边界矩形GetClipBox获取完全包含指定设备场景剪裁区的最小矩形GetClipRgn获取设备场景当前剪裁区GetDC获取指定窗口的设备场景GetDCEx为指定窗口获取设备场景。

相比GetDC,本函数提供了更多的选项GetDCOrgEx获取指定设备场景起点位置(以屏幕坐标表示)GetDeviceCaps根据指定设备场景代表的设备的功能返回信息GetGraphicsMode确定是否允许增强图形模式(世界转换)GetMapMode为特定设备场景调入映象模式GetRegionData装入描述一个区域信息的RgnData结构或缓冲区GetRgnBox获取完全包含指定区域的最小矩形GetUpdateRgn确定指定窗口的刷新区域。

VC中Sleep函数

VC中Sleep函数
ErrorExit("TlsGetValue error");
// Use the data stored for the current thread.
printf("common: thread %d: lpvData=%lx\n",
GetCurrentThreadId(), lpvData);
需求:
Windows NT/2000/XP: 包括Windows NT 3.1 和以后版本。
Windows 95/98/Me: 包括Windows 95 和以后版本。
头文件: 定义在 Winbase.h; 包含于 Windows.h.
连接库: 使用 Kernel32.lib.
}
for (i = 0; i < THREADCOUNT; i++)
WaitForSingleObject(hThread[i], INFINITE);
ห้องสมุดไป่ตู้eturn 0;
}
VOID ErrorExit (LPTSTR lpszMessage)
LocalFree((HLOCAL) lpvData);
return 0;
}
DWORD main(VOID)
{
DWORD IDThread;
HANDLE hThread[THREADCOUNT];
int i;
使用函数时必须要小心直接或间接的创建窗体。如果线程创建任意窗体,则必须处理消息。消息广播发送给所有系统中的窗体。如果有一个线程调用Sleep无限制等待,系统将死锁。 DDE 和 COM CoInitialize 是间接创建窗体的两个例子。 因此, 有线程创建窗体,使用 MsgWaitForMultipleObjects 函数或者MsgWaitForMultipleObjectsEx 函数,这两个函数更适合。

VC++API函数小全

VC++API函数小全

博客站点这是第一篇文章通过ADO操作Access数据库»VC++API函数小全VC++/gy8396 发表于2005-10-26, 20:10VC++API小查窗口处理2.1 窗口简介2.2.1 创建普通窗口(CreateWindow、CreateWindowEx)2.2.2 关闭窗口(CloseWindow)2.2.3 销毁窗口(DestroyWindow)2.3 窗口之间的关系2.3.1 父子关系(SetParent、GetParent、IsChild)2.3.2 遍历窗口(EnumWindow、EnumWindowProc、EnumChildWindows、En umChildProc)2.3.3 获取指定的子窗口(ChildWindowFromPoint、ChildWindowFromPointEx) 2.3.4 获得特定的窗口(GetWindow、GetTopWindow、GetNextWindow、GetD esktopWindow)2.4 窗口的大小、位置和布局2.4.1 获取窗口大小(GetWindowRect、GetClientRect)2.4.2 调整窗口大小(AdjustWindowRect、AdjustWindowRectEx)2.4.3 设置和获取窗口位置(SetWindowPos)2.4.4 移动窗口位置(MoveWindow)2.4.5 设置一组窗口位置(BeginDeferWindowPos、DeferWindowPos、EndDefe rWindowPos)2.4.6 设置和获取窗口布局(SetWindowPlacement、GetWindowPlacement) 2.4.7 设置和获得视口坐标起点(SetViewportOrgEx、GetViewportOrgEx)2.4.8 设置和获取视口坐标范围(SetViewportExtEx、GetViewportExtEx)2.4.9 设置和获取窗口坐标起点(SetWindowOrgEx、GetWindowOrgEx)2.4.10 设置和获取窗口坐标范围(SetWindowExtEx、GetWindowExtEx)2.4.11 坐标起点的偏移操作(OffsetViewportOrgEx、OffsetWindowOrgEx) 2.5 显示窗口2.5.1 显示单个窗口(ShowWindow、ShowWindowAsync、OpenIcon)2.5.2 弹出式窗口(ShowOwnedPopups、GetLastActivePopup)2.5.3 显示子窗口(CascadeWindows、TileWindows、ArrangeIconicWindows) 2.5.4 判断各种显示状态(IsIconic、IsWindowVisible、IsZoomed)2.6 窗口属性2.6.1 设置和获取窗口名(SetWindowText、GetWindowText、GetWindowText Length)2.6.2 设置和获取窗口标记长字(SetWindowLong、GetWindowLong)2.6.3 设置和获取前台窗口(SetForegroundWindow、GetForegroundWindow)2.7 对话框2.7.1 创建对话框(DialogBox、CreateDialog、CreateDialogIndirect、Message Box、MessageBoxEx、MessageBoxIndirect)2.7.2 获取控件及其ID(GetDlgItem、GetDlgCtrlID)2.7.3 设置获取控件的显示文本(SetDlgItemText、SetDlgItemInt、GetDlgIte mText、GetDlgItemInt)2.7.4 获取下一个TAB控件(GetNextDlgTabItem)2.7.5 对话框过程(DefDlgProc、DialogProc)2.7.6 对话框坐标和屏幕坐标间的转换(MapDialogRect)2.7.7 撤销对话框(EndDialog)2.8 其他2.8.1 查找窗口(FindWindow、FindWindowEx)2.8.2 设置窗口Z坐标(BringWindowToTop)2.8.3 确定窗口属性(IsWindow、IsWindowUnicode)2.8.4 设置和获取激活态窗口(SetActiveWindow、GetActiveWindow)2.8.5 窗口闪烁(FlashWindow)2.8.6 获取指定点处的窗口(WindowFromPoint)2.8.7 遍历线程所有窗口(EnumThreadWindows、EnumThreadWndProc)设备上下文——DC3.2.1 创建DC(CreateDC、CreateCompatibleDC)3.2.2 撤销DC(ReleaseDC、DeleteDC)3.2.3 获得窗口DC(GetWindowDC、GetDC、GetDCEx)3.2.4 保存和恢复DC(SaveDC、RestoreDC)3.3 设置和获取DC的各种属性3.3.1 获得DC起始点坐标(GetDCOrgEx)3.3.2 设置显示配置(ChangeDisplaySettings、ChangeDisplaySettingsEx) 3.3.3 遍历显示设备和其配置(EnumDisplayDevices、EnumDisplaySettings) 3.3.4 设置和获取DC画刷颜色(SetDCBrushColor、GetDCBrushColor)3.3.5 设置和获取DC画笔颜色(SetDCPenColor、GetDCPenColor)3.3.6 设置和获取DC中各种对象(SelectObject、GetCurrentObject)3.3.7 获取DC中对象的信息(GetObject、GetObjectType、GetStockObject) 3.4 区域操作3.4.1 新建椭圆区域(CreateEllipticRgn、CreateEllipticRgnIndirect)3.4.2 新建多边形区域(CreatePolygonRgn、CreatePolyPolygonRgn)3.4.3 新建矩形区域(CreateRectRgn、CreateRectRgnIndirect)3.4.4 新建圆矩形区域(CreateRoundRectRgn)3.4.5 区域之间的操作(EqualRgn、ExcludeUpdateRgn)3.4.6 区域上绘图操作(FillRgn、FrameRgn、InvertRgn、PaintRgn)3.5 裁剪操作3.5.1 设置和获取裁剪区域(SelectClipRgn、SelectClipPath、GetClipRgn、Ext SelectClipRgn)3.5.2 裁剪区域间的运算(ExcludeClipRect、IntersectClipRect、OffsetClipRgn) 3.6 坐标变换3.6.1 客户区坐标与屏幕坐标的变换(ClientToScreen、ScreenToClient)3.6.2 设备坐标与逻辑坐标的变换(DPtoLP、LPtoDP)3.6.3 窗口间的坐标变换(MapWindowPoints)3.7 颜色和调色板3.7.1 创建新调色板(CreatePalette)3.7.2 启用调色板(SelectPalette、RealizePalette)3.7.3 设置和获取调色板颜色条目(SetPaletteEntries、GetPaletteEntries)3.7.4 设置系统调色板的工作方式(SetSystemPaletteUse)3.7.5 设置和获取颜色调整(SetColorAdjutstment、GetColorAdjustment)3.7.6 获取匹配颜色(GetNearestColor、GetNearestPaletteIndex)3.8 其他3.8.1 滚动窗口(ScrollDC)3.8.2 偏移操作(OffsetRect、OffsetRgn)3.8.3 点、矩形和区域的关系(PtInRegion、PtVisible、RectInRegion、RectVisi ble)3.8.4 缩放视口和窗口大小(ScaleViewportExtEx、ScaleWindowExtEx)3.8.5 由给定DC获取相联系的窗口(WindowFromDC)3.8.6 获取特定设备的信息(GetDeviceCaps)3.8.7 撤销DC中的对象(DeleteObject)基本画图函数4.1.1 点(SetPixel、SetPixelV、GetPixel)4.1.2 线(LineTo、LineDDA、LineDDAProc、MoveToEx、Polyline、PolylineT o)4.1.3 曲线(PolyBezier、PolyBezierTo、PolyDraw)4.1.4 弧(AngleArc、Arc、ArcTo、SetArcDirection、GetArcDirection)4.1.5 椭圆(Ellipse)4.1.6 弦(Chord)4.1.7 矩形(Rectangle、Roundrect、DrawEdge、DrawFocusRect、FillRect) 4.1.8 多边形(Polygon、PolyPolygon、PolyPolyline)4.1.9 饼图(Pie)4.2 路径相关函数4.2.1 启动和终止路径绘图(BeginPath、EndPath)4.2.2 曲线到直线(FlattenPath)4.2.3 填充路径(FillPath、StrokeAndFillPath)4.2.4 边界处理(StrokePath、WidenPath)4.2.5 封闭路径(CloseFigure)4.2.6 获取路径区域(PathToRegion)4.2.7 获取路径(GetPath)4.2.8 撤销路径(AbortPath)处理DC对象4.3.1 新建画笔(CreatePen、CreatePenIndirect、ExtCreatePen)4.3.2 新建画刷(CreateBrushIndirect、CreateHatchBrush、CreateDIBPatter nBrushPt、CreatePatternBrush、CreateSolidBrush、GetSysColorBrush) 4.3.3 设置和获取背景颜色和模式(GetBkColor、GetBkMode、SetBkColor、Set BkMode)4.4 图元文件4.4.1 创建图元文件(CreateEnhMetaFile、CreateMetaFile)4.4.2 复制图元文件(CopyEnhMetaFile、CopyMetaFile)4.4.3 打开图元文件(GetEnhMetaFile)4.4.4 关闭图元文件(CloseEnhMetaFile、CloseMetaFile)4.4.5 撤销图元文件(DeleteEnhMetaFile、DeleteMetaFile)4.4.6 绘制图元文件(PlayEnhMetaFile)4.5 其他4.5.1 启动和终止绘图(BeginPaint、EndPaint)4.5.2 获取需更新区域(GetUpdateRect、GetUpdateRgn)4.5.3 绘图操作生效(InvalidateRect、InvalidateRgn、ValidateRect、Validate Rgn)4.5.4 设置和获取最大绘图缓冲(GdiSetBatchLimit、GdiGetBatchLimit)4.5.5 刷新缓冲(GdiFlush)4.5.6 设置和获取窗口可绘图区域(SetWindowRgn、GetWindowRgn)4.5.7 禁止在窗口绘图(LockWindowUpdate)4.5.8 绘制桌面(PaintDesktop)4.5.9 更新窗口(RedrawWindow)4.5.10 撤销绘图操作(CancelDC)4.5.11 描绘标准控件(DrawFrameControl)4.5.12 设定画图效果(DrawState、DrawStateProc)4.5.13 设置和获取系统颜色(SetSysColors、GetSysColor)位图和图标5.2.1 创建位图(CreateBitmap、CreateBitampIndirect、CreateCompatible、Bitmap、CreateDIBitmap、CreateDIBSection、LoadBitmap、LoadImage) 5.2.2 创建图标(CreateIcon、LoadIcon、LoadCursorFromFile)5.2.3 撤销图标(DestoryIcon)5.3 设置和获得位图和图标的各种属性5.3.1 设置和获取位图的位数据(SetBitmapBits、GetBitmapBits)5.3.2 设置和获取DIB(SetDIBits、GetDIBits)5.3.3 设置和获取DIB颜色表(SetDIBColorTable、GetDIBColorTable)5.3.4 设置和获取位图的大小(GetBitmapDimensionEx、SetBitmapDimension Ex)5.3.5 获取图标信息(GetIconInfo)5.4 位块操作5.4.1 各种位块操作方式(BitBlt、PatBlt、PlgBlt、StretchBlt、MaskBlt、Trans parentBlt)5.4.2 设置和获取位操作模式(SetROP2、GetROP2、SetStretchBltMode、GetS tretchBltMode)5.5 其他5.5.1 复制位图和图标(CopyImage、CopyIcon)5.5.2 从文件中搜寻图标(ExtractIcon、ExtractIconEx、ExtractAssociatedIcon) 5.5.3 显示图标(DrawIcon、DrawIconEx)菜单处理6.1 菜单的简单操作6.1.1 生成新菜单(CreateMenu、CreatePopupMenu)6.1.2 装载菜单(LoadMenu、LoadMenuIndirect)6.1.3 撤销菜单(DestoryMenu、DeleteMenu、RemoveMenu)6.1.4 获取菜单(GetMenu、GetSubMenu、GetSystemMenu)6.1.5 增添菜单(AppendMenu)6.2 菜单项处理6.2.1 设置和获取菜单项信息(SetMenuItemInfo、GetMenuItemInfo)6.2.2 设置和获取缺省菜单项(SetMenuDefautlItem、GetMenuDefaultItem) 6.2.3 获取菜单项的ID(GetMenuItemID)6.2.4 获取菜单项数(GetMenuItemCount)6.2.5 获取菜单项的范围大小(GetMenuItemRect)6.2.6 高亮显示菜单项(HiliteMenuItem)6.2.7 菜单项属性(CheckMenuItem、EnableMenuItem、CheckMenuRadioIte m)6.2.8 添加菜单项(InsertMenuItem)6.2.9 获取某点处的菜单项(MenuItemFromPoint)6.3 其他6.3.1 设置窗口的菜单(SetMenu)6.3.2 判定句柄是否指向菜单(IsMenu)6.3.3 上下文菜单(TrackPopupMenu、TrackPopupMenuEx)6.3.4 显示菜单条(DrawMenuBar)6.3.5 图形菜单项(SetMenuItemBitmaps)文件处理7.1 创建、读写和撤销文件7.1.1 创建文件(CreateFile、lcreat、GetTempFileName)7.1.2 设置文件读写位置(SetFilePointer、_llseek、_lseek)7.1.3 写入文件(WriteFile、lwrite、hwirte)7.1.4 异步写入文件(WriteFileEx、FileIOCompletionRoutine)7.1.5 读入文件(ReadFile、_lread、_hread)7.1.6 异步读入文件(ReadFileEx)7.1.7 复制文件(CopyFile、CopyFileEx、CopyProgressRoutine)7.1.8 更改文件名(MoveFile、MoveFileEx)7.1.9 关闭文件(CloseHandle、_lclose)7.1.10 删除文件(DeleteFile)7.2 设置和获得文件的各种信息7.2.1 获取文件大小(GetFileSize)7.2.2 获取文件类型(GetFileType)7.2.3 设置和获取文件时间信息(SetFileTime、GetFileTime)7.2.4 获取文件版本信息(GetFileVersionInfo、GetFileVersionInfoSize、VerQu eryValue)7.2.5 是否可执行文件(GetBinaryType)7.2.6 长文件名和短文件名的转换(GetFullPathName、GetShortPathName) 7.2.7 由文件句柄获取文件信息(GetFileInformationByHandle)7.2.8 设置文件结束标志(SetEndOfFile)7.2.9 设置和获取文件属性(SetFileAttributes、GetFileAttributes)7.3 目录处理7.3.1 创建新目录(CreateDirectory、CreateDirectoryEx)7.3.2 删除目录(RemoveDirectory)7.3.3 获取系统路径(GetSystemDirectory)7.3.4 获取临时路径(GetTempPath)7.3.5 获取Windows完整目录(GetWindowsDirectory)7.3.6 设置和获取当前目录(SetCurrentDirectory、GetCurrentDirectory)7.4 文件查找7.4.1 查找第一个文件(FindFirstFile)7.4.2 查找下一个文件(FindNextFile)7.4.3 查找指定文件(SearchPath)7.4.4 查找结束(FindClose)7.5 磁盘信息7.5.1 获取可用逻辑驱动器(GetLogicalDrives)7.5.2 获取可用逻辑驱动器信息(GetLogicalDriveStrings)7.5.3 设置和获取卷标信息(SetVolumeLabel、GetVolumeInformation)7.5.4 获取磁盘空闲空间(GetDiskFreeSpace、GetDiskFreeSpaceEx)7.5.5 获取磁盘类型(GetDriveType)7.6 压缩文件7.6.1 初始化内部缓冲区(LZInit)7.6.2 打开压缩文件(LZOpenFile)7.6.3 读入压缩文件(LZRead)7.6.4 压缩文件指针定位(LZSeek)7.6.5 获取压缩文件大小(GetCompressedFileSize)7.6.6 获取压缩文件全名(GetExpandedName)7.6.7 复制和解压缩文件(LZCopy)7.6.8 关闭压缩文件(LZClose)7.7 其他7.7.1 设置和获取字符集(SetFileApisToANSI、SetFileApisToOEM、AreFileApi sANSI)7.7.2 联系文件和I/O端口(CreateIoCompletionPort、PostQueuedCompletion Status、GetQueuedCompletionStatus)7.7.3 更新文件缓冲区(FlushFileBuffers)7.7.4 加锁和解锁文件(LockFile、LockFileEx、UnlockFile、UnlockFileEx)7.7.5 撤销文件IO(CancelIO)7.7.6 比较文件时间信息(CompareFileTime)7.7.7 设备IO操作(DeviceIoControl)7.7.8 DOS时间转换为Win32时间(DosDateTimeToFileTime)7.7.9 Win32时间转换为Dos时间(FileTimeToDosDateTime)7.7.10 Win32时间转换本地时间(FileTimeToLocalFileTime)同步8.1 同步对象8.1.1 生成同步对象(CreateEvent、CreateMutex、CreateSemaphore、Create WaitableTimer)8.1.2 打开同步对象(OpenEvent、OpenMutex、OpenSemaphore、OpenWait able Timer)8.1.3 关键段(EnterCriticalSection、LeaveCriticalSection、DeleteCritiaclSec tion)8.2 关键区段8.2.1 初始化关键区段(InitializeCriticalSection、InitializeCriticalSectionAnd SpinCount)8.2.2 非阻塞进入关键区段(TryEnterCriticalSection)8.2.3 设置关键区段的计数(SetCriticalSecitonSpinCount)8.3 原子性访问变量8.3.1 原子性比较(InterlockedCompareExchange)8.3.2 原子性交换(InterlockedExchange)8.3.3 原子性增加(InterlockedIncrement、InterlockedExchangeAdd)8.3.4 原子性减少(InterlockedDecrement)8.4 等待事件发生8.4.1 触发一个事件并等待另一个事件(SignalObjectAndWait)8.4.2 等待单个事件发生(WaitForSingleObject、WaitForSingleObjectEx)8.4.3 等待多个事件发生(WaitForMultipleObjects、WaitForMultipleObjectsEx) 8.4.4 等待消息(MsgWaitForMultipleObjects、MsgWaitForMultipleObjectsEx) 8.5 其他8.5.1 设置事件状态(SetEvent、ResetEvent、PulseEvent)8.5.2 释放互斥量(ReleaseMutex)8.5.3 释放信号灯(ReleaseSemaphore)8.5.4 设置可等待定时器状态(SetWaitableTimer、CancelWaitableTimer)处理文本和字体9.1 文本9.1.1 显示文本(DrawText、DrawTextEx、TextOut、ExTextOut、TabbedText Out、GrayString、OutputProc、PolyTextOut)9.1.2 设置和获取文本属性(SetTextAlign、GetTextAlign、SetTextColor、GetT extColor)9.1.3 调整和获取字符间距(SetTextCharacterExtra、GetKerningPairs)9.1.4 获得字符串的宽和高(GetTextExtentPoint32、GetTabbedTextExtent) 9.1.5 获取字符串的信息(GetCharacterPlacement)9.1.6 调整字符串(SetTextJustification)9.3 字体9.3.1 创建新字体(CreateFont、CreateFontIndirect、CreateScalableFontRes ource)9.3.2 在系统中添加和删除字体(AddFontResource、RemoveFontResource) 9.3.3 获取字体的宽度(GetCharABCWidths、GetCharWidth、GetCharWidth32、GetCharWidthFloat、GetCharaABCWidthsFloat)9.3.4 获取字体的各种信息(GetTextMetric、GetFontLanguageInfo)9.3.5 字体的宽高比( GetAspectRatioFilterEx、SetMapperFlags)9.3.6 获取字体的字型名(GetTextFace)9.3.7 遍历系统字体(EnumFontFamiliesEx、EnumFontFamiExProc)第10章硬件和系统10.1 键盘10.1.1 设置和获取键盘布局(ActivateKeyboardLayout、GetKeyboardLayout、GetKey boardLayoutList、GetKeyboardLayoutName)10.1.2 装载和卸载键盘布局(LoadKeyBoardLayout、UnloadKeyBoardLayout) 10.1.3 获得和设置键盘状态(GetKeyboardState、SetKeyboardState)10.1.4 获得键盘类型(GetKeyboardType)10.1.5 获得按键名(GetKeyNameText)10.1.6 获得按键状态(GetKeyState、GetAsyncKeyState)10.1.7 虚拟按键到扫描码(MapVirtualKey、MapVirtualKeyEx)10.1.8 虚拟按键到ASCII码(ToAscii、ToAsciiEx)10.1.9 虚拟按键到Unicode(ToUnicode、ToUnicodeEx)10.1.10 字符到虚拟按键(VkKeyScan、VkKeyScanEx)10.1.11 OEM码到扫描码(OemKeyScan)10.1.12 注册和撤销系统热键(RegisterHotKey、UnregisterHotKey)10.1.13 插入键盘事件(SendInput、keybd_event)10.2 鼠标10.2.1 获得鼠标输入点序列(GetMouseMovePoints)10.2.2 获得和设置双击间隔(GetDoubleClickTime、SetDoubleClickTime) 10.2.3 鼠标左右键设置(SwapMouseButton)10.2.4 鼠标捕获和释放(SetCapture、GetCapture、ReleaseCapture)10.2.5 捕获离开和滑过事件(TrackMouseEvent)10.2.6 插入鼠标事件(mouse_event)10.2.7 探测拖动(DragDetect)10.3 光标10.3.1 新建和撤销光标(CreateCursor、LoadCursorFromFile、DestroyCursor) 10.3.2 设置和获取光标(SetCursor、GetCursor)10.3.3 设置和获取光标位置(SetCursorPos、GetCursorPos)10.3.4 设置和获取光标活动范围(ClipCursor、GetClipCursor)10.3.5 显示光标(ShowCursor)10.3.6 设置系统光标(SetSystemCursor)10.4 时钟10.4.1 设置和获取系统时间(SetSystemTime、GetSystemTime、GetSystemTi meAsFileTime)10.4.2 设置和获取当地时间(SetLocAltime、GetLocAltime)10.4.3 获取自启动以来的微秒数(GetTickCount)10.4.4 获取和设置系统调整时间( GetSystemTimeAdjustment、SetSystemTi meAdjustment)10.4.5 设置和获取时区信息(SetTimeZoneInformation、GetTimeZoneInforma tion)10.4.6 获取高精度时间(QueryPerformanceCounter、QueryPerformance Fre quency)10.4.7 设置定时器(SetTimer)10.4.8 设置定时器回调函数(TimerProc)10.4.9 撤销定时器(KillTimer)10.5 系统信息10.5.1 获取系统各种度量信息(GetSystemMetrics)10.5.2 设置和获取系统参数(SystemParametersInfo)10.5.3 确定处理器的特性(IsProcessorFeaturePresent)10.5.4 获取和设置计算机名(GetComputerName、SetComputerName)10.5.5 获取用户名(GetUserName)10.5.6 获取操作系统版本信息(GetVersionEx)10.5.7 获取系统信息(GetSystemInfo)第11章Windows 消息11.1 消息系统概述11.2 消息处理11.2.1 发送消息(SendMessage、SendMessageCallback、SendNotifyMessage、SendMessageTimeout、PostThreadMessage、PostMessage、PostQutiMe ssage、BroadcastSystemMessage)11.2.2 回复消息(ReplyMessage)11.2.3 获取消息(GetMessage、WaitMessage、PeekMessage)11.2.4 处理消息(TranslateMessage、DispatchMessage)11.2.5 设置和获取消息的附加信息(SetMessageExtraInfo、GetMessageExtra Info)11.2.6 获取消息的伴随信息(GetMessagePos、GetMessageTime)11.2.7 注册新窗口消息(RegisterWindowMessage)11.3 消息队列11.3.1 获取队列状态(GetQueueStatus)11.3.2 获取队列中输入消息状态( GetInputState)11.4 其他11.4.1 是否重入(InSendMessage、InSendMessageEx)进程和线程12.1 进程和线程概述12.2 进程12.2.1 创建新进程(CreateProcess、CreateProcessAsUser)12.2.2 获取进程对象(OpenProcess)12.2.3 获取进程起始信息(GetStartupInfo)12.2.4 设置和获取工作集大小(SetProcessWorkingSetSize、GetProcessWorki ngSetSize)12.2.5 设置和获取进程的优先级(SetPriorityClass、GetPriorityClass)12.2.6 进程的动态优先级(SetProcessPriorityBoost、GetProcessPriorityBoost) 12.2.7 设置和获取退出参数(SetProcessShutdownParameters、GetProcessSh utdownParameters)12.2.8 获取进程的退出代码(GetExitCodeProcess)12.2.9 设置和获取环境参数(GetEnvironmentStrings、SetEnvironmentVariable、GetEnvironmentVariable、FreeEnvironmentVariable)12.2.10 获取进程的时间信息(GetProcessTime)12.2.11 获取进程的版本信息(GetProcessVersion)12.2.12 获取当前进程(GetCurrentProcess、GetCurrentProcessID)12.2.13 等待进程空闲(WaitForInputIdle)12.2.14 结束进程(ExitProcess、TerminateProcess)12.2.15 获取命令参数(GetCommandLine、CommandLineToArgvW)12.3 线程12.3.1 创建新线程(CreateThread)12.3.2 设置和获得线程优先级(SetThreadPriority、GetThreadProority)12.3.3 线程的调度(SuspendThread、SwitchToThread、ResumeThreadExitT hread 、TerminateThread、Sleep、SleepEx)12.3.4 设置线程的输入队列(AttachThreadInput)12.3.5 线程的动态优先级( SetThreadPriorityBoost、GetThreadPriorityBoost)12.3.6 获取线程的时间信息(GetThreadTimes)12.3.7 获取线程的退出码(GetExitCodeThread)12.4 调试12.4.1 调试指定进程(DebugActiveProcess)12.4.2 设置断点(DebugBreak)12.4.3 等待异常发生(WaitForDebugEvent)12.4.4 重新启动线程(ContinueDebugEvent)12.4.5 设置调试级别(SetDebugErrorLevel)12.4.6 发送一串字符给调试器(OutputDebugString)12.4.7 是否处于被调试态(IsDebuggerPresent)12.4.8 控制转移到调试器(FatalExit)12.4.9 设置和获取线程上下文(SetThreadContext、GetThreadContext) 12.4.10 获取线程选择子的描述符(GetThreadSelectorEntry)12.4.11 读写进程内存(WriteProcessMemory、ReadProcessMemory) 12.5 线程局部数据区12.5.1 分配(TlsAlloc)12.5.2 释放(TlsFree)12.5.3 设置和获取变量值(TlsSetValue、TlsGetValue)12.6 进程间通信12.6.1 创建映射文件(CreateFileMapping)12.6.2 打开映射文件(OpenFileMapping)12.6.3 映射文件到内存(MapViewOfFile、MapViewOfFileEx)12.6.4 撤销映射(UnmapViewOfFile)。

VC函数库详解

VC函数库详解

函数名:_access所属库名:<io.h>函数功能:检查某个文件的存取方式,比如说是只读方式、只写方式等。

如果指定的存取方式有效,则函数返回0,否则函数返回-1使用方法:int _access( const char *path, int mode );范例:这个例子使用-access函数来检查文件access.c 是否是可写的:include <io.h>include <stdio.h>include <stdlib.h>void main( void ){if( (_access( "ACCESS.C", 0 )) != -1 ){ printf( "File ACCESS.C exists\n" );if( (_access( "ACCESS.C", 2 )) != -1 )函数名:_alloca所属库名:<malloc.h>函数功能:在堆栈上分配一个内存空间,返回一个指向该内存空间地址的void型指针使用方法:void *_alloca( size_t size );范例:在堆栈上分配一个50字节的内存空间:Int *pointer; size_t Size=100; Pointer=(int *)_alloca(Size);函数名:_atoi64所属库名:<stdlib.h>函数功能:把一个字符串转换为_int64型使用方法:__int64 _atoi64( const char *string ); 范例:和atof函数类似函数名:_beginthread所属库名:<process.h>函数功能:创建一个线程使用方法:unsigned long _beginthread( void( __cdecl *start_address )( void * ), unsigned stack_size, void *arglist ); unsigned long _beginthreadex(范例:这个例子显示了_beginthread函数的基本用法,FirstThread是线程的起始地址,数字20是线程的堆栈空间,常量NULL是线程的参数表:_beginthread(FirstThread,20,NULL);函数名:_beginthreadex所属库名:<process.h>函数功能:创建一个线程使用方法:unsigned long _beginthreadex( void *security, unsigned stack_size, unsigned ( __stdcall *start_address )( void * ), void *arglist, unsigned initflag, unsigned *thrdaddr );范例:和_beginthread函数类似函数名:_c_exit所属库名:<process.h>函数功能:进行清除操作(释放已占用的内存空间等),但是不终止程序使用方法:void _c_exit( void );范例:和_cexit函数类似函数名:_cabs所属库名:<math.h>函数功能:计算一个复数的绝对值使用方法:double _cabs( struct _complex z ); 范例:把一个复数ComplexNumber赋给变量d:struct _complex number = { 3.0, 4.0 };double d; d = _cabs( number );函数名:_cexit所属库名:<process.h>函数功能:进行清除操作(释放已占用的内存空间等),但是不终止程序使用方法:void _cexit( void );范例:这个例子中如果用户按下y键,则进行清除操作:int button; _cputs("Yes or No?"); button=_getch(); if(toupper(button)=='y') _cexit();函数名:_cgets所属库名:<conio.h>函数功能:从键盘得到一个字符串使用方法:char *_cgets( char *buffer );范例:数字80用来限制屏幕上每行最多只能输入80个字符:char *string; char Buffer[82]={80}; string=_cgets(Buffer);函数名:_chdir所属库名:<direct.h>函数功能:改变当前的工作目录,若成功则返回0,否则返回-1,使用方法:int _chdir( const char *dirname );范例:这个例子中实现了把当前目录改为d:\visual c++: _chdir("d;\\visual c++");函数名:_chdrive所属库名:<direct.h>函数功能:改变当前的工作驱动器使用方法:int _chdrive( int drive );范例:这个例子中实现了检查计算机中有多少个可用的驱动器(PC机最多可以装26个驱动器):int Drive=1; while(Drive<=26) {if(_chdrive(Drive)==0)printf("%c\n",Drive+'A'-1); Drive++;}函数名:_chgsign所属库名:<float.h>函数功能:改变一个double型数的正负号(正变为负,负变为正)使用方法:double _chgsign( double x );范例:给double型变量x赋值为-12345.678:double x; x=_chgsign(12345.678);函数名:_chmod所属库名:<io.h>函数功能:改变文件的读写许可设置,如果改变成功返回0,否则返回-1使用方法:int _chmod( const char *filename, int pmode );范例:这个例子中实现了把文件sample.txt设置为只读文件:if(_chmod("sample.txt",_S_IREAD)==-1)cout<<"文件sample.txt不存在"; else cout<<"文件sample.txt变为只读文件";函数名:_chsize所属库名:<io.h>函数功能:改变文件的字节长度,如果成功返回0,否则返回-1使用方法:int _chsize( int handle, long size ); 范例:和_chmod函数类似函数名:_clear87所属库名:<float.h>函数功能:返回并且清除浮点状态字使用方法:unsigned int _clear87( void );范例:这个例子中变量x是float型的,把一个double 型的值赋给它时可能会引起数据的溢出,这个时候我们使用_clear87函数来检查溢出的情况:float x; double y=1.4e-35; x=y; printf("浮点状态字%x代表数据的溢出\n",_clear87());函数名:_clearfp所属库名:<float.h>函数功能:返回并且清除浮点状态字使用方法:unsigned int _clearfp( void );范例:和_clear87函数类似函数名:_close所属库名:<io.h>函数功能:关闭文件,如果成功返回0,否则返回-1使用方法:int _close( int handle );范例:这个例子中先以只读方式打开文件sample.txt,然后再把它关闭:int Handle; Handle=_open(" c:\\sanmple.txt",_O_RDONL Y); if(Handle==-1) perror("出错!"); else {cout<<"文件已经打开"; _close(Handle); }函数名:_commit所属库名:<io.h>函数功能:把某个文件的数据直接存储到磁盘上,如果成功返回0,否则返回-1使用方法:int _commit( int handle );范例:这个例子中可以把文件的数据在操作中及时写入磁盘,可以避免一些以外情况导致文件的数据丢失:int Handle; if( (Handle=_open("sample.txt",_O_RDWR))!=-1) { ...... _commit(Handle); ...... _close(Handle);函数名:_control87所属库名:<float.h>函数功能:返回或者设置浮点控制字使用方法:unsigned int _control87( unsigned int new, unsigned int mask );范例:_control87函数可以控制浮点类型数据的精度:double Value=0.1; _control87(_PC_24,MCW_PC); printf("24位精度:%f\n",Value); _control87(_CW_DEFAULT,0xFFFFF);printf("缺省精度:%f\n",Value);函数名:_controlfp所属库名:<float.h>函数功能:返回或者设置浮点控制字使用方法:unsigned int _controlfp( unsigned int new, unsigned int mask );范例:和_control87函数类似函数名:_copysign所属库名:<float.h>函数功能:以第二个参数y的符号(正或负)返回第一个参数x使用方法:double _copysign( double x, double y ); 范例:这个例子中变量a的值为-0.4567: double x=0.4567; double y=-0.123; double a; a=_copysign(x,y);函数名:_cprintf所属库名:<conio.h>函数功能:用指定的格式在显示器上输出信息使用方法:int _cprintf( const char *format [, argument] ... );范例:int I = -16, h = 29; unsigned u = 62511; char c = 'A'; char s[] = "Test";_cprintf( "%d %.4x %u %c %s\r\n", I, h, u, c, s );函数名:_cputs所属库名:<conio.h>函数功能:在显示器上输出一个字符串,若成功则返回0,否则返回一个非0值使用方法:int _cputs( const char *string );范例:这个例子中实现了在显示器上显示“hello!”:char *p="hello!"; _cputs(p);函数名:_creat所属库名:<io.h>函数功能:创建一个新的文件,若成功返回0,否则返回-1使用方法:int _creat( const char *filename, int pmode );范例:这个例子中实现了创建一个新文件sample.txt:int Handle; Handle=_creat( "sample.txt",_S_IREAD | _S_IWRITE);函数名:_cscanf所属库名:<conio.h>函数功能:从键盘上输入已经指定格式的数据使用方法:int _cscanf( const char *format [, argument] ... );范例:这个例子中%d就是格式控制:int x;_csanf("%d",&x);函数名:_cwait所属库名:<process.h>函数功能:某个进程开始进入等待状态直到另一个进程终止为止使用方法:int _cwait( int *termstat, int procHandle, int action );范例:这个例子中若变量x为2将显示两个carl:struct process{ int id; char name[40]; } process[3]={{0,"ann"},{0,"beth"},{0,"carl"}}; void main(int argc,char *argv[]) { int index,result; if(argc==1) {for (index=0; index<3;index++)process[index].id=_spawnl(_P_函数名:_dup所属库名:<io.h>函数功能:为一个已经打开的文件建立第二个句柄使用方法:int_dup( int handle );范例:这个例子中给已经有句柄的标准输出设备(stdout)建立第二个句柄Monitor ,然后再恢复原来的句柄:int Monitor; Monitor = _dup(1); ...... _dup2(Monitor,1);函数名:_dup2所属库名:<io.h>函数功能:为一个文件重新分配句柄使用方法:int _dup2( int handle1, int handle2 ); 范例:请参看_dup函数函数名:_ecvt所属库名:<stdlib.h>函数功能:把一个double型的数据转换为一个字符串使用方法:char *_ecvt( double value, int count, int *dec, int *sign );范例:这个例子中变量Prcision存储数字的精度,变量Decimal存储小数点的位置,变量Sign存储数字的符号:char *String; double Value =2.143554; int Precision =10, Decimal, Sign; String= _ecvt(Value,Precision,&Decimal,&sign);函数名:_endthread所属库名:<process.h>函数功能:终止_beginthread函数创建的某个线程使用方法:void _endthread( void );范例:请参看_beginthread函数函数名:_endthreadex所属库名:<process.h>函数功能:终止_beginthread函数创建的某个线程使用方法:void _endthreadex( unsigned retval ); 范例:和_endthread函数类似函数名:_eof所属库名:<io.h>函数功能:测试文件指针是否指向文件尾部,若指向文件尾部返回0,否则返回-1使用方法:int _eof( int handle );范例:这个例子中打开文件eof.c,每次读取10个字节,直到全部字节被读完为止,然后显示文件的长度:void main( void ){int fh, count, total = 0;char buf[10]; if( (fh = _open( "eof.c", _O_RDONL Y )) == - 1 ) { perror( "Open failed"); exit( 1 );} while( !_eof( fh ) ) { if( (count = _read( f函数名:_execl所属库名:<process.h>函数功能:在父进程中装载并执行新的子进程,若成功则返回0,否则返回-1使用方法:int _execl( const char *cmdname, const char *arg0, ... Const char *argn, NULL );范例:这个例子介绍了以_exec开头的8个函数的用法:char *my_env[] = { "THIS=environment will be", "PASSED=to new process by", "the EXEC=functions",NULL}; void main() { char *args[4], prog[80];int ch; printf( "Enter name of program to exec: " ); gets( prog函数名:_execle所属库名:<process.h>函数功能:在父进程中装载并执行新的子进程,若成功则返回0,否则返回-1使用方法:int _execle( const char *cmdname, const char *arg0, ... Const char *argn, NULL, const char *const *envp );范例:请参看_execl函数函数名:_execlp所属库名:<process.h>函数功能:在父进程中装载并执行新的子进程,若成功则返回0,否则返回-1使用方法:int _execlp( const char *cmdname, const char *arg0, ... Const char *argn, NULL );范例:请参看_execl函数函数名:_execlpe所属库名:<process.h>函数功能:在父进程中装载并执行新的子进程,若成功则返回0,否则返回-1使用方法:int _execlpe( const char *cmdname, const char *arg0, ... Const char *argn, NULL, const char *const *envp );范例:请参看_execl函数函数名:_execv所属库名:<process.h>函数功能:在父进程中装载并执行新的子进程,若成功则返回0,否则返回-1使用方法:int _execv( const char *cmdname, const char *const *argv ); 范例:请参看_execl函数函数名:_execve所属库名:<process.h>函数功能:在父进程中装载并执行新的子进程,若成功则返回0,否则返回-1使用方法:int _execve( const char *cmdname, const char *const *argv, const char *const *envp );范例:请参看_execl函数函数名:_execvp所属库名:<process.h>函数功能:在父进程中装载并执行新的子进程,若成功则返回0,否则返回-1使用方法:int _execvp( const char *cmdname, const char *const *argv );范例:请参看_execl函数函数名:_execvpe所属库名:<process.h>函数功能:在父进程中装载并执行新的子进程,若成功则返回0,否则返回-1使用方法:int _execvpe( const char *cmdname, const char *const *argv, const char *const *envp );范例:请参看_execl函数函数名:_exit所属库名:<process.h> or <stdlib.h>函数功能:进行清除操作(释放已占用的内存空间等),并且终止当前进程使用方法:void _exit( int status );范例:和exit函数类似函数名:_expand所属库名:<malloc.h>函数功能:改变某个内存区域的字节数使用方法:void *_expand( void *memblock,size_t size );范例:这个例子中把buffer从512个字节扩展到了1024个字节:char *buffer; buffer=(char *)calloc(512,sizeof(char)); cout<<"内存区域为512个字节!"<<endl; buffer=(char *)_expand(buffer,1024); cout<<"内存区域为1024个字节!"; free(buffer);函数名:_fcloseall所属库名:<stdio.h>函数功能:关闭已经打开的所有数据流,若成功则返回被关闭的数据流的个数,否则返回eof 使用方法:int _fcloseall( void );范例:和fclose函数类似函数名:_fcvt所属库名:<stdlib.h>函数功能:把一个double型的数据转换为一个字符串使用方法:char *_fcvt( double value, int count, int *dec, int *sign );范例:和_ecvt函数类似函数名:_fdopen所属库名:<stdio.h>函数功能:把一个以低级I/O方式打开的文件与某个数据流联系起来,即将这个文件“数据流化”,若成功则返回一个指向该数据流的指针,否则返回NULL使用方法:FILE *_fdopen( int handle, const char *mode );范例:这个例子中先以句柄方式打开文件sample.txt,然后以数据流的方式处理该文件:int handle,line=0; FILE *stream; char buffer[120];handle=_open("sample.txt",_O_RDONL Y); steam=_fdopen(handle,"r");while(fgets(buffer,120,stream)!=NULL)line++; fclose(stream); cout<<"文件中有"<<l 函数名:_fgetchar所属库名:<stdio.h>函数功能:从标准输入设备上读取一个字符使用方法:int _fgetchar( void );范例:和fgetc函数类似函数名:_fgetwchar所属库名:<stdio.h> or <wchar.h>函数功能:从标准输入设备读取一个字符使用方法:wint_t _fgetwchar( void );范例:和fgetchar类似函数名:_filelength所属库名:<io.h>函数功能:测试文件的字节长度,若失败返回-1L使用方法:long _filelength( int handle );范例:这个例子中显示了文件sample.txt的字节长度:int Handle; if(Handle=_open("sample.txt",_O_RDWR)!=-1) { cout<<"文件长度是"<<_filelength(Handle)<<"字节"; _close(Handle); }函数名:_filelengthi64所属库名:<io.h>函数功能:测试文件的字节长度,若失败返回-1L使用方法:__int64 _filelengthi64( int handle ); 范例:和_filelength函数类似函数名:_fileno所属库名:<stdio.h>函数功能:得到某个数据流的文件句柄使用方法:int _fileno( FILE *stream );范例:这个例子中显示了标准输出设备stdout的文件句柄:cout<<"标准输出设备sdtout的文件句柄:"<<_fileno(stdout)<<endl;函数名:_findclose所属库名:<io.h>函数功能:关闭已经打开的搜索句柄,释放相关的资源,若成功则返回0,否则返回-1使用方法:int _findclose( long handle );范例:请参看_findfirst函数函数名:_findfirst所属库名:<io.h>函数功能:搜索与指定的文件名称匹配的第一个实例,若成功则返回第一个实例的句柄,否则返回-1L使用方法:long _findfirst( char *filespec, struct _finddata_t *fileinfo );范例:这个例子中实现了搜索当前目录中所有的文本文件(.txt),并且显示出它的名字:long Handle; struct_finddata_t FileInfo; if((Handle=_findfirst("*.txt",&FileInfo))==-1L) cout<<"没有找到匹配的项目"; else { cout<<<<endl; while( _findnext(Handle,&FileInfo)==0) cout<<FileInfo.nam函数名:_findfirst64所属库名:<io.h>函数功能:搜索与指定的文件名称匹配的第一个实例,若成功则返回第一个实例的句柄,否则返回-1L使用方法:__int64 _findfirsti64( char *filespec, struct _finddata_t *fileinfo );范例:和_findfirst函数类似函数名:_findnext所属库名:<io.h>函数功能:搜索与_findfirst函数提供的文件名称匹配的下一个实例,若成功则返回0,否则返回-1使用方法:int _findnext( long handle, struct _finddata_t *fileinfo );范例:请参看_findfirst函数函数名:_findnext64所属库名:<io.h>函数功能:搜索与_findfirst64函数提供的文件名称匹配的下一个实例,若成功则返回0,否则返回-1使用方法:__int64 _findnexti64( long handle, struct _finddata_t *fileinfo );范例:和_findnext函数类似函数名:_finite所属库名:<float.h>函数功能:确定double型参数x是否为有尽小数,若是则返回一个非0值,否则返回0使用方法:int _finite( double x );范例:这个例子测试了double型变量x是否为有尽小数:double x; x=0.39348745497854; if(_finite(x)!=0) cout<<"变量x是有尽小数";函数名:_flushall所属库名:<stdio.h>函数功能:清除所有的数据流和所有的缓冲区使用方法:int _flushall( void );范例:这个例子中将清除所有的数据流和缓冲区:int Count; Count= _flushall();函数名:_fpclass所属库名:<stdio.h>函数功能:返回一个状态字来记录参数x的浮点类信息使用方法:int _fpclass( doublex );范例:double x=5.00000; if(_fpclass(x)==_FPCLASS_PN) cout<<"x是正数";函数名:_fpieee_flt所属库名:<fpieee.h>函数功能:当发生IEEE浮点异常时,引发用户定义的错误处理程序,返回的值即为错误处理程序的返回值使用方法:int _fpieee_flt( unsigned long exc_code, struct _EXCEPTION_POINTERS *exc_info, int handler(_FPIEEE_RECORD *) ); 范例:这个例子是各种浮点异常的错误处理程序的框架:define _EXE_MASK_EM_UNDERFLOW +\_EM_OVERFLOW+\_EM_ZERODIVIDE+\_ EM_INEXACT void main() { __try {_controlfp(_EXC_MASK,_MCW_EM);__except(_fpieee_flt(GetExceptionCode(),GetEx ecptionInformation(),fpieee_Handler)) { …}函数名:_fpreset所属库名:<float.h>函数功能:初始化浮点算术程序包使用方法:void _fpreset( void );范例:这个例子中signal函数捕捉到浮点错误信号,然后调用_fpreset和longjmp函数:jmp_buf jumpmark; int fperr; void main() { int jumpteturn; _control87(0,_MCW_EM); if(signal(SIGFPE,Fphandler)==SIG_ERR) {fprintf(stderr,"出错"); abort(); } jumpreturn=setjmp(jumpmark); if(j函数名:_fputchar所属库名:<stdio.h>函数功能:把一个字符写入标准输出设备,若成功则返回写入的字符数,否则返回EOF使用方法:int _fputchar( int c );范例:和fputc函数类似函数名:_fputwchar所属库名:<stdio.h> or <wchar.h>函数功能:把一个字符写入标准输出设备,若成功则返回写入的字符数,否则返回WEOF 使用方法:wint_t _fputwchar( wint_t c );范例:和fputchar函数类似函数名:_fsopen 所属库名:<stdio.h>函数功能:以共享的方式打开一个数据流使用方法:FILE *_fsopen( const char *filename, const char *mode, int shflag );范例:FILE *Stream; if( (stream = _fsopen( "outfile", "wt", _SH_DENYWR )) != NULL ) fprintf( stream, "No one else in the network can write to this file until we are done.\n" ); fclose( stream ); {函数名:_fstat所属库名:<sys/stat.h> and <sys/types.h>函数功能:返回一个已经打开的文件的状态信息,若成功则返回0,否则返回-1使用方法:int _fstat( int handle, struct _stat *buffer );范例:这个例子中创建了一个文件sample.txt,并写入了一个字符串:int handle,result; char string[]="hello"; struct_stat status; handle=_open("sample.txt",_O_CREST|_O_WR ONL Y); result=_fstat(handle,&status); _close(handle);}函数名:_fstati64所属库名:<sys/stat.h> and <sys/types.h>函数功能:返回一个已经打开的文件的状态信息,若成功则返回0,否则返回-1使用方法:__int64 _fstati64( int handle, struct _stat *buffer );范例:和_fstat函数类似函数名:_ftime所属库名:<sys/types.h> and <sys/timeb.h>函数功能:返回当前时间使用方法:void _ftime( struct _timeb *timeptr ); 范例:这个例子中把当前时间的信息写入结构timebuffer中:struct_time timebuffer; char *p; _ftime(&timebuffer); p=ctime(&(timebuffer.time));函数名:_fullpath所属库名:<stdlib.h>函数功能:把某个相对路径转换为完整路径(绝对路径),若成功则返回一个指向该路径的指针,否则返回NULL使用方法:char *_fullpath( char *absPath, const char *relPath, size_t maxLength );范例:这个例子中实现了把用户输入的相对路径转换为完整路径:char PartPath[_MAX_PATH], FullPATH[_MAX_PARH]; cout<<"请输入相对路径:"; gets(PartPath); if( _fullpath(FullPath,PartPath,_MAX_PARH)!=NULL) cout<<"绝对路径为:"<<FullPath<<endl;函数名:_futime所属库名:<sys/utime.h>函数功能:为某个已经打开的文件设置修改时间,若成功则返回0,否则返回-1使用方法:int _futime( int handle, struct _utimbuf *filetime );范例:这个例子中使用了_futime函数来把当前的系统时间设置为文件修改的时间:int hFile; system("dir futime.c"); hFile=_open("futime.c",_o_RDWR);if( _futime(hFile,NULL)==-1) perror("_futime failed\n"); else printf( "File time modified\n"); close (hfile); system("dir futime函数名:_gcvt所属库名:<stdlib.h>函数功能:把一个double型的数据转换成一个字符串,并且把该字符串存储在缓冲区中,若成功则返回一个指向字符串的指针使用方法:char *_gcvt( double value, int digits, char *buffer );范例:这个例子中把一个double型数据-3.1415e5转换成7位的字符串:char Buffer[50]; double source = -3.1415e5; _gcvt( source, 7, Buffer ); printf( "source: %f Buffer: '%s'\n", source, Buffer );函数名:_get_osfhandle所属库名:<io.h>函数功能:返回某个数据流的FILE指针所对应的操作系统文件句柄,若失败则返回-1使用方法:long _get_osfhandle( int filehandle ); 范例:这个例子中返回了指针Handle所对应的操作系统文件句柄OSFileHandle:FILE *Handle; long OSFlieHandle; OSFileHandle=_get_osfhandle(Handle);函数名:_get_sbh_threshold所属库名:<malloc.h>函数功能:返回小块的上限值,缺省为480 使用方法:size_t _get_sbh_threshold( void ); 范例:这个例子中显示了小块堆的上限值:size_t limit; limit=_get_sbh_threshold;函数名:_getch所属库名:<conio.h>函数功能:从键盘读取一个字符,但不把它回显使用方法:int _getch( void );范例:这个例子中实现了从键盘输入20个字符:char Buffer[25]; int Count; for(Count=1;Count<=20;Count++){ Buffer[Count]=_getch(); }函数名:_getche所属库名:<conio.h>函数功能:从键盘读取一个字符,并且把它回显使用方法:int _getche( void );范例:和_getch函数类似函数名:_getcwd所属库名:<direct.h>函数功能:返回当前的工作目录使用方法:char *_getcwd( char *buffer, intmaxlen );范例:这个例子中显示了当前的工作目录:char Directory[_MAX_PATH];if(_getcwd(Directory,_MAX_PA TH)!=NULL) cout<<"当前的工作目录是:"<<Directory;函数名:_getdcwd所属库名:<direct.h>函数功能:返回指定的驱动器上当前工作目录的完整路径(绝对路径)使用方法:char *_getdcwd( int drive, char *buffer, int maxlen );范例:这个例子中显示了c盘的当前工作目录的名称(A盘为1,B盘为2,C盘为3,依次类推):int Drive=3; cahr Directory=[_MAX_PATH]; if (Drive,Directory,_MAX_PATH)!=NULL)cout<<"c盘的当前工作目录的完整路径为:"<<Directory;函数名:_getdrive所属库名:<direct.h>函数功能:返回当前的磁盘驱动器,1代表A 盘,2代表B盘,依次类推使用方法:int _getdrive( void );范例:int _getdrive( void );函数名:_getmbcp所属库名:<mbctype.h>函数功能:返回当前正在使用的多字节代码页,若返回值为0,则表示当前使用的是单字节代码,否则为多字节代码使用方法:int _getmbcp( void );范例:这个例子中可以判断当前的代码页的类型:if(_getmbcp()!=0) cout<<"正在使用多字节代码页"<<endl; else cout<<"正在使用单代码页"<<endl;函数名:_getpid所属库名:<process.h> 函数功能:返回进程识别代码使用方法:int _getpid( void );范例:这个例子中可以显示当前进程的识别代码:printf( "\nProcess id: %d\n", _getpid() );函数名:_getw所属库名:<stdio.h>函数功能:从某个数据流中读取一个整型数据使用方法:int _getw( FILE *stream );范例:这个例子中从文件sample.txt中读取了一个整数:FILE *Stream; int x; Stream=fopen("sample.txt","rb");I=_getw(Stream); cout<<I; fclose(Stream);函数名:_getws所属库名:<stdio.h> or <wchar.h>函数功能:从标准输入设备上读取一行宽字符使用方法:wchar_t *_getws( wchar_t *buffer ); 范例:和gets函数类似函数名:_heapadd所属库名:<malloc.h>函数功能:把一个内存区域添加到堆中去使用方法:int _heapadd( void *memblock, size_t size );范例:这个例子中把一个假设长度为20字节的区域添加到堆中,指针Buffer指向这个区域:_heapadd(Buffer,20);函数名:_heapchk所属库名:<malloc.h>函数功能:检查堆的连续性,若成功则返回一组预定义常量中的一个,否则把全局变量errno 设置为ENOSYS使用方法:int _heapchk( void );范例:这个例子中先分配然后释放一块内存区域Buffer来检查堆的状态是否正常:int heapstatus;char *buffer;if( (buffer = (char *)malloc( 100 )) != NULL )free( buffer );heapstatus = _heapchk(); switch( heapstatus ) { case _HEAPOK: printf(" OK - heap is fine\n" );bre函数名:_heapmin所属库名:<malloc.h>函数功能:释放没有使用的堆空间,返还给操作系统,若成功则返回0,否则返回-1使用方法:int _heapmin( void );范例:本函数多用于进行了堆操作之后用来释放未使用的空间:_heapmin();函数名:_heapset所属库名:<malloc.h>函数功能:检查堆的最小连续性,并且用指定的数值或者字符填充堆的自由项目,若成功则返回一组预定义常量中的一个,否则把全局变量errno设置为ENOSYS使用方法:int _heapset( unsigned int fill );范例:这个例子中使用字符x填充堆中自由项目的每一个字节:char *Buffer; int Status; Buffer=(char *)malloc(100)!=NULL); if((Stream=_heapset('x'))=_HEAPOK) cout<<"成功"; free(Buffer);函数名:_heapwalk所属库名:<malloc.h>函数功能:从头到尾扫描堆,并且返回堆中下一个项目的信息,若成功则返回一组预定义常量中的一个,否则把全局变量errno设置为ENOSYS使用方法:int _heapwalk( _HEAPINFO *entryinfo );范例:这个例子中显示了堆中的每个项目信息:_HEAPINFO x; int status; x._pentry=NULL; while((status=_heapwalk(&x)==_HEAPOK) {cout<<(x._useflag==_USEDENTRY?"已使用":"未使用"); cout<<x._pentry; cout<<x._size ; } 函数名:_hypot所属库名:<math.h>函数功能:计算直角三角形的斜边长度,若操作失败则返回无穷大使用方法:double _hypot( double x, double y ); 范例:这个例子中已知直角三角形的两条直角边的长度,使用函数_hypot可以计算出斜边的长度:double x=3.0,y=4.0; z=_hypot(x,y);函数名:_i64toa所属库名:<stdlib.h>函数功能:把一个__int64型的数据转换为字符串,返回一个指向该宽字符串的指针使用方法:char *_i64toa( __int64 value, char *string, int radix );范例:和_itoa函数类似函数名:_i64tow所属库名:<stdlib.h>函数功能:把一个__int64型的数据转换为宽字符串,返回一个指向该宽字符串的指针使用方法:wchar_t * _i64tow( __int64 value, wchar_t *string, int radix );范例:和_itoa函数类似函数名:_inp所属库名:<conio.h>函数功能:从端口输入一个字节使用方法:int _inp( unsigned short port );范例:这个例子中实现了从8号端口输入一个字节:int Port=8; int Byte; Byte=_inp(Port);函数名:_inpd所属库名:<conio.h>函数功能:从端口输入一个双字(四字节)使用方法:unsigned long _inpd( unsigned short port );范例:和_inp函数类似函数名:_inpw所属库名:<conio.h>函数功能:从端口输入一个字(两字节)使用方法:unsigned short _inpw( unsigned short port );范例:和_inp函数类似函数名:_isascii所属库名:<ctype.h>函数功能:若参数c是一个ASCII 字符(0x00-0x7f),则返回一个非0值,否则返回0 使用方法:int __isascii( int c );范例:和isalnum函数类似函数名:_isatty所属库名:<io.h>函数功能:若某个句柄和某个字符设备(比如显示器、打印机、终端等)相关联,则返回一个非0值,否则返回0使用方法:int _isatty( int handle );范例:这个例子中实现了检查标准输出设备(stdout)是否被重定向到某个磁盘文件:if( _isatty( _fileno( stdout ) ) ) printf( "stdout has not been redirected to a file\n" ); else printf( "stdout has been redirected to a file\n");函数名:_iscsym所属库名:<ctype.h>函数功能:若参数c是一个字母、数字或者下划线,则返回一个非0值,否则返回0使用方法:int __iscsym( int c );范例:和isalnum函数类似函数名:_iscsymf所属库名:<ctype.h>函数功能:若参数c是一个字母或者下划线,则返回一个非0值,否则返回0使用方法:int __iscsymf( int c );范例:和isalnum函数类似函数名:_ismbbalnum所属库名:<mbctype.h>函数功能:若参数c是一个字母或者一个数字,则返回一个非0值,否则返回0。

VC中操作INI文件的函数

VC中操作INI文件的函数

Name=tian"0Age=20"0Sex=man"0"0(每条以"0分割,最后以两个"0结束)
而我们是想等到每个key及其对应的值,那怎么分割上面那个字符串呢?在VB有中个叫Split()函数,用起来很方便,但是vc里面没有。
当然,你也可以在VC中去实现一个Split()函数,不过我在这里提供一个简单的方法:
);
这个 api 可以读出整个 section 的内容,当你不知道 section 中有哪些 key 的时候,可以使用这个 api 将整个 section 读出后再处理。
说明:
例ini文件为:
[student]
Name=tian
Age=20
Sex=man
由GetPrivateProfileSection()函数第二个参数lpReturnedString 返回的字符串如下:
WriteProfileString(
LPCTSTR lpAppName, // 指向包含 Section 名称的字符串地址
LPCTSTR lpKeyName, // 指向包含 Key 名称的字符串地址
LPCTSTR lpString // 要写的字符串地址
);
如果 Win.ini 没有指定的 Section,API 会新建 Section,如果没有指定的 Key 则新建一个 Key 并写入数据,如果已经存在,则用字符串代替原来的值。
INT nDefault // 如果 Key 值没有找到,则返回缺省的值是多少
);
如果 Key 值没有找到的话,返回值是 nDefault 指定的缺省值,如果 Key 中的值是负数,则返回 0,如果 Key 指定的是数字和字符串的混合,则返回数字部分的值,比如说 x=1234abcd,则返回 1234

C语言标准库函数大全

C语言标准库函数大全
file://F:\DOCUME~1\lichao\LOCALS~1\Te 2 of 22
相册
BOOK photo 自己做的
Expert
anjou jeffreyzhao Ricktroy shenfx 吕震宇 随心所欲 小寒
Friends
Hack Site
Hack a day Hack And Slash Hack Canada
2009-4-3
目录函数,所在函数库为dir.h、dos.h int chdir(char *path) 使指定的目录path(如:"C:\\WPS")变成当前的工 作目录,成功返回0 int findfirst(char *pathname,struct ffblk *ffblk,int attrib) 查找指定的文件,成功返回0 pathname为指定的目录名和文件名,如"C:\\WPS\\TXT" ffblk为指定的保存文件信息的一个结构,定义如下: ┏━━━━━━━━━━━━━━━━━━┓ ┃struct ffblk ┃ ┃{ ┃ ┃ char ff_reserved[21]; /*DOS保留字*/┃ ┃ char ff_attrib; /*文件属性*/ ┃ ┃ int ff_ftime; /*文件时间*/ ┃ ┃ int ff_fdate; /*文件日期*/ ┃ ┃ long ff_fsize; /*文件长度*/ ┃ ┃ char ff_name[13]; /*文件名*/ ┃ ┃} ┃ ┗━━━━━━━━━━━━━━━━━━┛ attrib为文件属性,由以下字符代表 ┏━━━━━━━━━┳━━━━━━━━┓ ┃FA_RDONLY 只读文件┃FA_LABEL 卷标号┃ ┃FA_HIDDEN 隐藏文件┃FA_DIREC 目录 ┃ ┃FA_SYSTEM 系统文件┃FA_ARCH 档案 ┃ ┗━━━━━━━━━┻━━━━━━━━┛ 例: struct ffblk ff; findfirst("*.wps",&ff,FA_RDONLY);

VC中网络编程的常用函数及UDP,TCP协议编程步骤

VC中网络编程的常用函数及UDP,TCP协议编程步骤

VC中网络编程的常用函数及UDP,TCP协议编程步骤编写:<单击输入编写人>1.SOCKET类型SOCKET是socket套接字类型,在WINSOCK2.H中有如下定义:typedef unsigned int u_int;typedef u_int SOCKET;可知套接字实际上就是一个无符号整型,它将被Socket环境管理和使用。

套接字将被创建、设置、用来发送和接收数据,最后会被关闭。

2.WORD类型、MAKEWORD、LOBYTE和HIBYTE宏WORD类型是一个16位的无符号整型,在WTYPES.H中被定义为:typedef unsigned short WORD;其目的是提供两个字节的存储,在Socket中这两个字节可以表示主版本号和副版本号。

使用MAKEWORD宏可以给一个WORD类型赋值。

例如要表示主版本号2,副版本号0,可以使用以下代码:WORD wVersionRequested; wVersionRequested = MAKEWORD( 2, 0 );注意低位内存存储主版本号2,高位内存存储副版本号0,其值为0x0002。

使用宏LOBYTE可以读取WORD的低位字节,HIBYTE可以读取高位字节。

3. WSADATA类型和LPWSADATA类型WSADATA类型是一个结构,描述了Socket库的一些相关信息,其结构定义如下:typedef struct WSAData {WORD wVersion;WORD wHighVersion;char szDescription[WSADESCRIPTION_LEN+1];char szSystemStatus[WSASYS_STATUS_LEN+1];unsigned short iMaxSockets;unsigned short iMaxUdpDg;char FAR * lpVendorInfo;} WSADATA;typedef WSADATA FAR *LPWSADATA;值得注意的就是wVersion字段,存储了Socket的版本类型。

VC Format 函数详解

VC Format 函数详解

VC format函数详解o●.侽紸桷|o 发表于2007-11-7 9:02:00Format是一个很常用,却又似乎很烦的方法,本人试图对这个方法的帮助进行一些翻译,让它有一个完整的概貌,以供大家查询之用:首先看它的声明:function Format(const Format: string; const Args: array of const): string; overload;事实上Format方法有两个种形式,另外一种是三个参数的,主要区别在于它是线程安全的,但并不多用,所以这里只对第一个介绍:function Format(const Format: string; const Args: array of const): string; overload;Format参数是一个格式字符串,用于格式化Args里面的值的。

Args又是什么呢,它是一个变体数组,即它里面可以有多个参数,而且每个参数可以不同。

如以下例子:Format('my name is %6s',['wind']);返回后就是my name is wind现在来看Format参数的详细情况:Format里面可以写普通的字符串,比如'my name is'但有些格式指令字符具有特殊意义,比如"%6s"格式指令具有以下的形式:"%" [index ":"] ["-"] [width] ["." prec] type它是以"%"开始,而以type结束,type表示一个具体的类型。

中间是用来格式化type类型的指令字符,是可选的。

先来看看type,type可以是以下字符:d 十制数,表示一个整型值u 和d一样是整型值,但它是无符号的,而如果它对应的值是负的,则返回时是一个2的32次方减去这个绝对值的数如:Format('this is %u',[-2]);返回的是:this is 4294967294f 对应浮点数e 科学表示法,对应整型数和浮点数,比如Format('this is %e',[-2.22]);返回的是:this is -2.22000000000000E+000等一下再说明如果将数的精度缩小g 这个只能对应浮点型,且它会将值中多余的数去掉比如Format('this is %g',[02.200]);返回的是:this is 2.2n 只能对应浮点型,将值转化为号码的形式。

C语言标准库函数大全

C语言标准库函数大全
Arther's Blog
Page 1 of 22
博客园 社区 首页 新随笔 联系 管理 订阅
随笔- 208 文章- 0 评论14
c语言库函数大全--资料收集
Turbo C 2.0 函数中文说明大全
分类函数,所在函数库为ctype.h int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z')返回非0值,否则返回0 int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或数字('0'-'9'),返回非0值, 否则返回0 int isascii(int ch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0 int iscntrl(int ch) 若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F),返 回非0值,否则返回0 int isdigit(int ch) 若ch是数字('0'-'9')返回非0值,否则返回0 int isgraph(int ch) 若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值, 否则返回0 int islower(int ch) 若ch是小写字母('a'-'z')返回非0值,否则返回0 int isprint(int ch) 若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,否 则返回0 int ispunct(int ch) 若ch是标点字符(0x00-0x1F)返回非0值,否则返回0 int isspace(int ch) 若ch是空格(' '),水平制表符('\t'),回车符('\r'), 走纸换 行('\f'),垂直制表符('\v'),换行符('\n'), 返回非0值,否则返回0 int isupper(int ch) 若ch是大写字母('A'-'Z')返回非0值,否则返回0 int isxdigit(int ch) 若ch是16进制数('0'-'9','A'-'F','a'-'f')返回非0值, 否则 返回0 int tolower(int ch) 若ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z') int toupper(int ch) 若ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z')

vc++ CDC常用函数总结

vc++ CDC常用函数总结

CDCCObject└CDCCDC类定义的是设备上下文对象的类。

CDC对象提供处理显示器或打印机等设备上下文的成员函数,以及处理与窗口客户区对应的显示上下文的成员。

通过CDC对象的成员函数进行所有的绘图。

类对设备上下文操作提供了成员函数,处理绘图工具。

安全型图形设备接口(GDI)对象收集,以及处理颜色和调色板。

它还为获取和设置绘图属性、映射,处理视点、窗口扩展、转换坐标,处理区域、剪贴、绘制直线及绘制简单椭圆和多边形等形状提供了成员函数。

另外还为绘制文本、处理字体,使用打印机跳转,滚动和播放元文件提供成员函数。

使用CDC对象时要构造它,然后调用与它平等的、使用设备上下文的Windows函数的成员函数。

注意:Windows 95下所有屏幕坐标限制在16位以内。

因此向CDC成员函数传递的int必须在-32768至32767之间。

为了特定用途,Microsoft基本类库提供了几个CDC派生类。

CPaintDC 包括BeginPaint和EndPaint调用。

CClientDC 管理窗口用户区对应的显示上下文。

CWindowDC 管理与整个窗口对应的显示上下文,包括它的结构和控件。

CMetaFileDC 与带元文件的设备上下文对应。

CDC包含m_hDC和m_hAttribDC两个设备上下文,它们在CDC对象创建时参考同一个设备。

CDC指导所有对m_hDC的输出GDI调用以及对m_hAttribDC的大部分属性GDI调用(GetTextColor是属性调用的例子,而SetTextColor是一个输出调用)。

例如框架使用这两个设备上下文实现CMetaFileDC对象,在从物理设备读取属性期间向元文件发送输出。

打印预览以相同风格在框架中实现。

还可以以相似方法在特殊应用代码中使用这两个设备上下文。

可能多次需要来自m_hDC和m_hAttribDC设备上下文的文本度量信息。

以下几对函数提供了这项功能:使用m_hAttribDC 使用m_hDCGetTextExtent GetOutputTextExtentGetTabbedTextExtent GetOutputTabbedTextExtentGetTextMetrics GetOutputTextMetricsGetCharWidth GetOutputCharWidth有关CDC的更多信息,请参阅联机文档“Visual C++程序员指南”中的“设备上下文”。

VC常用系统函数

VC常用系统函数

附录B常用系统函数在使用C++语言进行编程时,许多很基本和很重要的功能都由系统的库函数和类库来实现。

为便于学习和使用,本附录列出了一些常用的库函数,供读者查阅。

本附录的依据是Windows环境下VC十+编译系统。

由于不同编译系统提供的库函数和类库可能会稍有差异,读者在实际使用时应参考所使用系统的手册。

为方便查阅,本附录的内容基本按函数类型分类,不同的分类中的内容可能会有重叠。

对每一个函数,包含对其名称、原型、参数的含义、所需头文件、返回值和函数的功能的简洁说明。

凡是函数名称以下划线开头的(如_open)都是Microsoft特殊函数,只适合在Windows 9x和WinNT平台上使用。

其它函数均为ANSI标准函数,在任何平台下都能使用。

为节约篇幅,考虑到本书的读者大多为C十+语言的初学者,本附录只收录了一些常用的函数。

对一些功能相同的函数,省略了其宽字符和多字节字符的版本,读者若需要查阅这方面的内容,可参考相应的资料。

B.1 缓冲区操作函数函数名:_memccpy函数原型:void *_memccpy(void *dest,const void *src,int c,unsigned int count);参数:dest目的指针;sro源指针;c拷贝的最后字符;count字符个数。

所需头文件:<memory.h>或<string.h>功能:从src所指向的地址开始拷贝。

个或多个字节到dest中。

当指定字符c已拷贝或已拷贝count个字节后停止。

返回值:如果字符c被拷贝,返回dest中该字符直接后继字节的指针;如果c 没有被拷贝则返回NULL。

函数名:memchr函数原型:void *memchr(const void *buf,int c,sizet count);参数:buf缓冲区的指针;c查找的字符;count检查的字符个数。

所需头文件:<memory.h>或<string.h>功能:查找buf的前count个字节中c的第一次出现,当找到c或已检查完count 个字节时停止。

VC回调函数定义和使用

VC回调函数定义和使用

VC回调函数定义和使⽤最近经常使⽤回调函数,有时感觉有点混乱,对回调函数理解不透,昨天花点时间深深品味了⼀下回调函数,写下博客记录⼀下,⾔规正转,VC中的定时器是⼀种特殊的回调函数,只要我们设置好了定时器,我们就不⽤管什么时候调⽤定时器处理函数,是操作系统负责调⽤,定时器的处理函数还是我们⾃⼰去写实现。

为什么要⽤回调函数呢,这个问题我也想过,现在先说说回调函数的定义和使⽤,过下在回答为什么要使⽤回调函数,下⾯这个例⼦是处理从⼀个普通的C++类CTest中把数据传到⼀个对话框类CTestCALLDlg中去,这⾥不能⽤消息来处理,因为消息只能处理线程和对话框之间的数据传输,对纯C++不起作⽤,这种情况下,就只能⽤回调函数来处理了,在Test.h⽂件中CTest定义之前定义 typedef bool (WINAPI * SendCmd)(WORD NodeID);⽤于声明⼀种指针类型,也就是后⾯要⽤到的回调函数类型,在在Test.h⽂件中定义⼀个成员函数void Testcall(SendCmd);注意这个成员函数的参数,在Test.cpp中:void CTest::Testcall(SendCmd Sd){Sd(10);}在CTestCALLDlg.cpp中写下回调函数SendCmdt 的实现部分和 OnBnClickedButton1事件调⽤bool _stdcall CALLBACK SendCmdt(WORD NodeID){return true;}void CTestCALLDlg::OnBnClickedButton1(){// TODO: 在此添加控件通知处理程序代码CTest m_test;m_test.Testcall(SendCmdt);}此时程序运⾏,就进⼊了回调函数中去了,这样做的⽬的是把NodeID变量的值从CTest类传到CTestCALLDlg类中,回调函数的⼀个好处是在CTest 中不知道NodeID 有什么⽤,只能通过回调作⽤,传出来到要使⽤的地⽅进⾏处理,只是在回调函数声明时告诉系统有这么⼀个函数,实现部分在外⾯。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.stdafx.h中没有函数库,只是定义了一些环境参数,使得编译出来的程序能在32位的操作系统环境下运行,当我们使用AppWizard来自动生成某些项目的时候,系统会自动把所需要include的头文件在stdafx.h中先include一下,这样,我们只需要直接include这个stdafx.h文件即可.因为同一个项目中的不同源文件CPP都包含相同的include文件,这样,为每个.CPP文件都重复include 这些文件就显得很傻了。

2.stdio.h就是意思就是说标准输入输出头文件,用到标准输入输出函数时,就要调用这个头文件!
3.stdlib 头文件里包含了C、C++语言的最常用的系统函数。

stdlib.h里面定义了五种类型、一些宏和通用工具函数。

4.register修饰符暗示编译程序相应的变量将被频繁地使用,如果可能的话,应将其保存在CPU的寄存器中,以加快其存储速度。

5.rand()函数是产生随机数的一个随机函数,使用该函数首先应在开头包含头文件stdlib.h ,在标准的C库中函数rand()可以生成0~RAND_MAX之间的一个随机数
6.Malloc 向系统申请分配指定size个字节的内存空间。

返回类型是 void* 类型。

而在Visual C++6.0中可以用malloc.h或者stdlib.h
7.srand函数是随机数发生器的初始化函数。

srand((unsigned) time(NULL)); 直接传入一个空指针,因为你的程序中往往并不需要经过参数获得的t数据。

8.fflush 功能: 清除文件缓冲区,文件以写方式打开时将缓冲区内容写入文件,fflush(stdout)刷新标准输出缓冲区,把输出缓冲区里的东西打印到标准输出设备上。

9.HANDLE FindFirstFile(
LPCTSTR lpFileName, // file name
LPWIN32_FIND_DATA lpFindFileData // data buffer
);根据文件名查找文件, 如执行成功,返回一个搜索句柄。

lpFileName String,欲搜索的文件名。

可包含通配符,并可包含一个路径或相对路径名. lpFindFileData WIN32_FIND_DATA,这个结构用于装载与找到的文件有关的信息。

该结构可用于后续的搜索
10. BOOL CreateDirectory(
LPCTSTR lpPathName,
LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
lpPathName:包含将被创建的文件夹路径的字符串,字符串的长度不超过
MAX_PATH。

lpSecurityAttributes:忽略,设为NULL
11. BOOL FindClose(
HANDLE hFindFile // file search handle
); 关闭FindFirstFile创建的搜索句柄
参数说明
HANDLE hFindFile FindFirstFile创建的句柄
12. time函数也常用于随机数的生成,用日历时间作为种子
13. 我们经常用到的是#pragma comment(lib,"*.lib")这类的。

#pragma comment(lib,"Ws2_32.lib")表示链接Ws2_32.lib这个库。

14.#pragma once用来防止某个头文件被多次include,#ifndef,#define,#endif用来防止某个宏被多次定义。

15. GetSystemMetrics()用于得到被定义的系统数据或者系统配置信息.
16. FindFirstFile根据文件名查找文件, lpFileName String,欲搜索的文件名, lpFindFileData WIN32_FIND_DATA,这个结构用于装载与找到的文件有关的信息。

17. CreateDirectory 创建一个新目录,LPCTSTR lpPathName,新目录的名字,LPSECURITY_ATTRIBUTES lpSecurityAttributes,这个结构定义了目录的安全特性。

18.BOOL FindClose()关闭FindFirstFile创建的搜索句柄.。

相关文档
最新文档