CAPI函数大全
C# API大全
C# API 大全(一)C# APIC:\ProgramFiles\MicrosoftVisual Studio .NET\ FrameworkSDK\Samples\ Technologies\ Interop\PlatformInvoke\ WinAPIs\CS目录下有大量的调用API 的例子。
一、调用格式using System.Runtime.InteropServices; //引用此名称空间,简化后面的代码//使用DllImportAttribute特性来引入api函数,注意声明的是空方法,即方法体为空。
[DllImport("user32.dll")]public static extern ReturnType FunctionName(type arg1,type arg2,...); //调用时与调用其他方法并无区别可以使用字段进一步说明特性,用逗号隔开,如:[ DllImport( "kernel32", EntryPoint="GetVersionEx" )] DllImportAttribute特性的公共字段如下:1、CallingConvention 指示向非托管实现传递方法参数时所用的CallingConvention 值。
CallingConvention.Cdecl : 调用方清理堆栈。
它使您能够调用具有 varargs 的函数。
CallingConvention.StdCall : 被调用方清理堆栈。
它是从托管代码调用非托管函数的默认约定。
2、CharSet 控制调用函数的名称版本及指示如何向方法封送 String 参数。
此字段被设置为 CharSet 值之一。
如果 CharSet 字段设置为 Unicode,则所有字符串参数在传递到非托管实现之前都转换成 Unicode 字符。
这还导致向DLL EntryPoint 的名称中追加字母“W”。
cc++ API函数大全 2
c/c++ API函数大全 22006年11月09日星期四 06:53 P.M.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 确定指定窗口的刷新区域。
c语言常用函数大全及详解
C语言常用函数包括:1.printf函数:用于在控制台输出数据。
2.scanf函数:用于从控制台读取用户输入的数据。
3.strlen函数:用于计算字符串的长度。
4.strcmp函数:用于比较两个字符串的大小。
5.strcpy函数:用于将一个字符串复制到另一个字符串中。
6.strcat函数:用于将一个字符串连接到另一个字符串的末尾。
7.strchr函数:用于查找字符串中指定字符的位置。
8.strstr函数:用于查找字符串中指定子串的位置。
9.atoi函数:用于将字符串转换为整数。
10.atof函数:用于将字符串转换为浮点数。
11.malloc函数:用于动态分配内存空间。
12.free函数:用于释放动态分配的内存空间。
13.memcpy函数:用于将一段内存区域的数据复制到另一段内存区域。
14.memset函数:用于将一段内存区域的数据设置为指定的值。
15.abs函数:用于计算整数的绝对值。
16.rand函数:用于生成随机数。
17.srand函数:用于设置随机数生成器的种子。
18.time函数:用于获取当前的系统时间。
19.localtime函数:用于将时间戳转换为本地时间。
20.strtol函数:用于将字符串转换为长整型数。
21.strtod函数:用于将字符串转换为双精度浮点数。
22.fprintf函数:用于将数据格式化输出到文件中。
23.fscanf函数:用于从文件中读取格式化的数据。
24.fgets函数:用于从文件中读取一行数据。
25.fputs函数:用于将数据写入文件中。
26.fopen函数:用于打开文件。
27.fclose函数:用于关闭文件。
28.feof函数:用于判断文件是否已经到达文件末尾。
29.ferror函数:用于判断文件操作是否发生错误。
30.fprintf函数:用于将数据格式化输出到文件中。
编程函数公式大全
编程函数公式大全编程函数是指在编程语言中,用于执行特定任务的一段可重复使用的代码。
它们通常接受输入参数并返回一个值或执行一些操作。
编程函数可以大大简化代码的结构和逻辑,提高代码的可读性和可维护性。
下面是一些常见的编程函数公式:1. 数学函数:- abs(x):返回x的绝对值。
- sqrt(x):返回x的平方根。
- pow(x, y):返回x的y次幂。
- sin(x)、cos(x)、tan(x):返回x的正弦、余弦和正切值。
- ceil(x):返回不小于x的最小整数。
- floor(x):返回不大于x的最大整数。
- round(x):返回最接近x的整数。
2. 字符串处理函数:- len(str):返回字符串str的长度。
- lower(str):将字符串str转换为小写字母形式。
- upper(str):将字符串str转换为大写字母形式。
- strip(str):去除字符串str两端的空格。
- split(str, delimiter):将字符串str按照分隔符delimiter 拆分成一个列表。
- join(list, delimiter):将列表list中的元素用分隔符delimiter连接成一个字符串。
3. 列表和字典操作函数:- append(item):向列表末尾添加一个元素item。
- remove(item):从列表中删除指定的元素item。
- sort():对列表进行升序排序。
- reverse():反转列表中的元素顺序。
- keys():返回字典中所有的键。
- values():返回字典中所有的值。
- get(key):返回字典中指定键key对应的值。
4. 文件操作函数:- open(file_path, mode):打开指定路径的文件,并返回一个文件对象。
- read():从文件中读取内容。
- write(content):将内容写入文件。
- close():关闭文件。
- seek(offset):将文件指针移动到指定的位置。
C语言图形编程函数大全
C语言图形编程一、字符屏幕一、屏幕操作函数1. clrscr()清除字符窗口函数2. window()字符窗口函数3. gotoxy()光标定位函数4. clreol() 清除光标行尾字符函数5. insline() 插入空行函数6. delline() 删除一行函数7. gettext() 拷进文字函数8. puttext() 拷出文字函数9. movetext() 移动文字函数二、字符属性函数10. textmode() 文本模式函数11. highvideo()高亮度函数12. lowvideo() 低亮度函数13. normvideo(void);14. textcolor() 文本颜色函数15. textattr() 文本属性函数16.textbackground() 文本背景函数三、屏显状态函数17. wherex() 光标处x坐标函数18. wherey() 光标处y坐标函数19. gettextinfo() 获取文本窗口信息函数在Borland C++里面提供了字符屏幕和图形函数。
字符屏幕的核心是窗口(Window),它是屏幕的活动部分,字符输出或显示在活动窗口中进行。
窗口在缺省时,就是整个屏幕。
窗口可以根据需要指定其大小。
同样,对图形函数的操作,也提供了(Viewport)。
也就是说图形函数的操作都是在视口上进行。
图形视口与字符窗口具有相同的特性,用户可以在屏幕上定义大小不同的视口,若不定义视口大小,它就是整个屏幕。
窗口是在字符屏幕下的概念,只有字符才能在窗口中显示出来,这时用户可以访问的最小单位为一个字符。
视口是在图形屏幕状态下的概念,文本与图形都可以在视口上显示,用户可访问的最小单位是一个像素(像素这一术语最初用来指显示器上最小的、单独的发光点单元。
然而现在,其含义拓宽为指图形显示器上的最小可访问点)。
字符和图形状态下,屏幕上的位置都是由它们的行与列所决定的。
有一点须指出:字符状态左上角坐标为(1,1),但图形左上角坐标为(0,0)。
利用MySQL自带的C API函数实现数据库功能调用
3 利用MySQL自带的C API函数实现数据库功能调用由于各个数据库之间的差异,它们所提供的数据库功能也就各有不同。
这样,通过ODBC API就不可能完全拥有所有的数据库功能,因而影响了程序对数据库的控制功能,也就不能充分发挥数据库的能力。
并且这种统一的接口还是以损失效能为前提的,这就使数据库操作时间延长。
所以,为了解决以上问题,MySQL 的制造商在提供ODBC驱动程序的基础上,还提供了各种编程环境下的API,其中包括 C API。
这些API函数很显然能尽可能地发挥数据库的能力,并减少数据库操作的延长时间,但却使程序的通用性受到严重影响。
MySQL提供了一套C API函数,它由一组函数以及一组用于函数的数据类型组成,这些函数与MySQL 服务器进行通信并访问数据库,可以直接操控数据库,因而显著地提高了操控效能。
C API数据类型包括:MYSQL(数据库连接句柄)、MYSQL_RES(查询返回结果集)、MYSQL_ROW(行集)、MYSQL_FIELD(字段信息)、MYSQL_FIELD_OFFSET(字段表的偏移量)、my_ulonglong(自定义的无符号整型数)等;C API提供的函数包括:mysql_close()、mysql_connect()、mysql_query()、mysql_store_result()、mysql_init()等,其中mysql_query()最为重要,能完成绝大部分的数据库操控。
下面将具体讨论数据库操作类CDatabase通过C API的实现以及在VC中的应用。
3.1 CDatabase类的实现CDatabase类封装了MySQL数据库的功能,因此不具备通用性,只能在对MySQL 的应用程序中使用。
下面将根据C++要求及规范给出CDatabase类的具体结构以及相关简要介绍:class CDatabase{public:BOOL UnLockTable(); //解锁BOOL LockTable(char* TableName,char* PRIORITY); //加锁int Reload(); //重新登陆,非零时返回错误信息char* GetState(); //服务器状态char* GetServerInfo(); //服务器信息int GetProtocolInfo(); //协议信息char* GetHostInfo(); //主机信息char * GetClientInfo(); //客户机信息char* GetFieldName(int FieldNum); //字段名BOOL IsEnd(); //是否最后int DropDB(char *db); //删除数据库,非零时返回错误信息void SeekData(int offset); //查找指定数据int CreateDB(char *db); //创建数据库,非零时返回错误信息void FreeRecord(); //释放结果集unsigned int GetFieldNum(); //得到字段数BOOL ConnectDB(Database_Param *p); //连接数据库MYSQL_ROW GetRecord(); //得到结果(一个记录)my_ulonglong GetRowNum(); //得到记录数BOOL SelectDB(Data_Param *para); //选择数据库BOOL UpdateRecord(Data_Param *para); //更新记录BOOL SelectRecord(Data_Param *para); //选择记录BOOL InsertRecord(Data_Param *para); //插入记录BOOL DelRecord(Data_Param *para); //删除记录BOOL SelectAll(Data_Param *para); //选择所有记录char * OutErrors(); //输出错误信息CDatabase(); //初始化数据库virtual ~CDatabase(); //关闭数据库连接private:MYSQL mysql; //数据库连接句柄MYSQL_RES *query; //结果集MYSQL_ROW row; //记录集MYSQL_FIELD *field; //字段信息(结构体)BOOL FindSave(char *str); //查找并保存结果集};通过CDatabase类中定义的这些功能函数,我们可以通过远程或本机完成对MySQL数据库的绝大部分操控,并且由于定义了解锁和加锁功能,使得应用程序能够多线程或多进程地访问数据库,大大提高了效能。
windows API函数大全
VC API常用函数简单例子大全第一个:FindWindow根据窗口类名或窗口标题名来获得窗口的句柄,该函数返回窗口的句柄函数的定义:HWND WINAPI FindWindow(LPCSTR lpClassName ,LPCSTR lpWindowName);第一个参数填窗口的类名,第二个填窗口的标题名,其实是不需要同时填两个参数的,也就是说,你只要知道窗口的类名或窗口的标题就可以了,没有的那个就用NULL代替。
比如现在有一个窗口名为"无标题.txt - 记事本"的记事本程序。
那么我就可以用上面的函数获得这个窗口的句柄,那获得了这个窗口的句柄我可以干什么呢?作用可大了,因为很多操作窗口的函数,都需要窗口句柄作参数,如移动、改变窗口大小的MoveWindow函数,在这里举个例子,大家就更能体会到这个FindWindow的用法、用处。
FindWindow例子:已知一个窗口名称,写一个程序关闭该窗口,假设当前电脑正有一个窗口名为"无标题.txt - 记事本"的记事本程序运行1 #include<windows.h> //API函数的头文件2int main()3 {4 HWND wnd; //定义一个窗口句柄变量,用以存储找到的窗口句柄5 wnd=FindWindow(NULL,"无标题.txt - 记事本"); //获得窗口名为"无标题.txt - 记事本"的窗口句柄67 SendMessage(wnd,WM_CLOSE,0,0); //调用SendMessage函数,发送一个WM_CLOSE(关闭)消息给wnd窗口句柄。
89return0;10 }如果要根据窗口类名来获得窗口句柄话,只要给函数的第一个参数填类名,第二个参数窗口名填NULL,即可,用Spy++可查看窗口类名。
第二个:SendMessage根据窗口句柄发送一个消息给窗口函数定义:LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam);第一个参数是窗口句柄,第二参数个是消息类型,下面的消息表列举了所有消息,第三,四个参数是消息附带信息,解释依赖于消息类型,比如一个字符消息(WM_CHAR),那么第三个参数就储存有一个字符的ASCII码。
VCAPI之菜单函数
VCAPI之菜单函数1.CreateMenu(VOID)函数功能:该函数创建一个菜单。
此菜单最初是空的,但可用函数InserMenultem,AppendMenu,和lnsertMenu来填入菜单项。
函数原型:HMENU CreateMenu(VOID)参数:无。
返回值:如果函数调用成功,返回值是新创建菜单的句柄。
如果函数调用失败,返回值是NULL。
若想获得更多的错误信息,请调用GetLastError函数。
备注:与被分配给一个窗日的菜单相联系的资源会被自动释放。
如果此菜单未被分配给一个窗口,应用程序必须在关闭之前释放与菜单相连的资源。
应用程序通过调用函数DestroyMenu来释放菜单资源。
2.HMENU CreatePopupMenu(VOID)函数功能:该函数创建一个下拉式菜单、子菜单或快捷菜单。
此菜单最初是空的,但可用函数InsertMenultem来插入或追加菜单项。
也可用函数InsertMenu来插人菜单项,用AppendMenu来追加菜单项。
函数原型:HMENU CreatePopupMenu(VOID)参数:无。
返回值:如果函数调用成功,返回值是新创建菜单的句柄。
如果函数调用失败,返回值是NULL。
若想获得更多的错误信息,请调用GetLastError函数。
备注:一个应用程序可增加新菜单到已存在的菜单上,或者可以调用函数TrackPopupMenuEx或TrackPopupMenu来显示快捷菜单。
与被分配给一个窗口的菜单相联系的资源会被自动释放。
如果此菜单未被分配给一个窗口,应用程序必须在关闭之前释放与菜单相连的资源。
应用程序通过调用函数DestroyMenu来释放菜单资源。
Windows95环境下,系统可支持最多16,364个菜单句柄。
3.BOOL AppendMenu(hMenu hMenu,UINT uFlags,UINT uIDNewltem,LPCTSTR lpNewltem)函数功能:该函数在指定的菜单条、下拉式菜单、子菜单或快捷菜单的末尾追加一个新菜单项。
(完整版)C语言函数大全
功能: 异常终止一个进程用法: void abort(void)函数名: abs功能: 求整数的绝对值用法: int abs(int i)函数名: absread, abswirte功能: 绝对磁盘扇区读、写数据用法: int absread(int drive, int nsects, int sectno, void *buffer) int abswrite(int drive, int nsects, in tsectno, void *buffer函数名: access功能: 确定文件的访问权限用法: int access(const char *filename, int amode)函数名: acos功能:反余弦函数用法: double acos(double x)函数名: allocmem功能: 分配DOS存储段用法:int allocmem(unsigned size, unsigned *seg)函数名: arc功能: 画一弧线用法:void far arc(int x, int y, int stangle, int endangle, int radius)函数名: asctime功能: 转换日期和时间为ASCII码用法:char *asctime(const struct tm *tblock)函数名: asin功能:反正弦函数用法: double asin(double x)函数名: assert功能: 测试一个条件并可能使程序终止用法:void assert(int test)函数名: atan功能: 反正切函数用法: double atan(double x)功能: 计算Y/X的反正切值用法: double atan2(double y, double x)函数名:atexit功能: 注册终止函数用法: int atexit(atexit_t func)函数名: atof功能: 把字符串转换成浮点数用法:double atof(const char *nptr)函数名: atoi功能: 把字符串转换成长整型数用法: int atoi(const char *nptr)函数名: atol功能: 把字符串转换成长整型数用法: long atol(const char *nptr)函数名: bar功能: 画一个二维条形图用法: void far bar(int left, int top, int right, int bottom)函数名: bar3d功能: 画一个三维条形图用法:void far bar3d(int left, int top, int right, int bottom,int depth, int topflag)函数名: bdos功能: DOS系统调用用法: int bdos(int dosfun, unsigned dosdx, unsigned dosal)函数名:bdosptr功能:DOS系统调用用法: int bdosptr(int dosfun, void *argument, unsigned dosal)函数名:bioscom功能: 串行I/O通信用法:int bioscom(int cmd, char abyte, int port)函数名:biosdisk功能: 软硬盘I/O用法:int biosdisk(int cmd, int drive, int head, int track, int sectorint nsects, void *buffer)函数名:biosequip功能: 检查设备用法:int biosequip(void)函数名:bioskey功能: 直接使用BIOS服务的键盘接口用法:int bioskey(int cmd)函数名:biosmemory功能: 返回存储块大小用法:int biosmemory(void)函数名:biosprint功能: 直接使用BIOS服务的打印机I/O用法:int biosprint(int cmd, int byte, int port)函数名:biostime功能: 读取或设置BIOS时间用法: long biostime(int cmd, long newtime)函数名: brk功能: 改变数据段空间分配用法:int brk(void *endds)函数名:bsearch功能: 二分法搜索用法:void *bsearch(const void *key, const void *base, size_t *nelem, size_t width, int(*fcmp)(const void *, const *))函数名: cabs功能: 计算复数的绝对值用法: double cabs(struct complex z);函数名:calloc功能:分配主存储器用法:void *calloc(size_t nelem, size_t elsize);函数名: ceil功能: 向上舍入用法: double ceil(double x);函数名: cgets功能: 从控制台读字符串用法: char *cgets(char *str)函数名:chdir功能: 改变工作目录用法: int chdir(const char *path);函数名:_chmod, chmod功能: 改变文件的访问方式用法: int chmod(const char *filename, int permiss);函数名:chsize功能: 改变文件大小用法: int chsize(int handle, long size);函数名: circle功能: 在给定半径以(x, y)为圆心画圆用法: void far circle(int x, int y, int radius);函数名: cleardevice功能: 清除图形屏幕用法: void far cleardevice(void);函数名:clearerr功能: 复位错误标志用法:void clearerr(FILE *stream);函数名: clearviewport功能: 清除图形视区用法: void far clearviewport(void);函数名:_close, close功能: 关闭文件句柄用法:int close(int handle);函数名: clock功能:确定处理器时间用法: clock_t clock(void);函数名:closegraph功能: 关闭图形系统用法: void far closegraph(void);函数名:clreol功能: 在文本窗口中清除字符到行末用法:void clreol(void)函数名:clrscr功能: 清除文本模式窗口用法:void clrscr(void);函数名: coreleft功能: 返回未使用内存的大小用法:unsigned coreleft(void);函数名: cos功能: 余弦函数用法:double cos(double x);函数名:cosh功能: 双曲余弦函数用法: dluble cosh(double x);函数名: country功能: 返回与国家有关的信息用法: struct COUNTRY *country(int countrycode, struct country *country); 函数名: cprintf功能: 送格式化输出至屏幕用法:int cprintf(const char *format[, argument, ...]);函数名: cputs功能: 写字符到屏幕用法: void cputs(const char *string);函数名: _creat creat功能: 创建一个新文件或重写一个已存在的文件用法: int creat (const char *filename, int permiss)函数名:creatnew功能: 创建一个新文件用法:int creatnew(const char *filename, int attrib);函数名: cscanf功能: 从控制台执行格式化输入用法:int cscanf(char *format[,argument, ...]);函数名: ctime功能: 把日期和时间转换为字符串用法:char *ctime(const time_t *time);功能: 设置Ctrl-Break处理程序用法: void ctrlbrk(*fptr)(void);函数名: delay功能: 将程序的执行暂停一段时间(毫秒)用法: void delay(unsigned milliseconds);函数名: delline功能: 在文本窗口中删去一行用法: void delline(void);函数名:detectgraph功能: 通过检测硬件确定图形驱动程序和模式用法: void far detectgraph(int far *graphdriver, int far *graphmode); 函数名: difftime功能: 计算两个时刻之间的时间差用法: double difftime(time_t time2, time_t time1);函数名: disable功能: 屏蔽中断用法:void disable(void);函数名: div功能: 将两个整数相除, 返回商和余数用法:div_t (int number, int denom);函数名: dosexterr功能: 获取扩展DOS错误信息用法:int dosexterr(struct DOSERR *dblkp);函数名: dostounix功能: 转换日期和时间为UNIX时间格式用法: long dostounix(struct date *dateptr, struct time *timeptr);函数名: drawpoly功能: 画多边形用法: void far drawpoly(int numpoints, int far *polypoints);函数名:dup功能: 复制一个文件句柄用法: int dup(int handle);函数名:dup2功能: 复制文件句柄用法: int dup2(int oldhandle, int newhandle);功能: 把一个浮点数转换为字符串用法: char ecvt(double value, int ndigit, int *decpt, int *sign);函数名: ellipse功能: 画一椭圆用法:void far ellipse(int x, int y, int stangle, int endangle,int xradius, int yradius);函数名: enable功能: 开放硬件中断用法: void enable(void);函数名: eof功能: 检测文件结束用法: int eof(int *handle);函数名: exec...功能: 装入并运行其它程序的函数用法: int execl(char *pathname, char *arg0, arg1, ..., argn, NULL); int execle(char *pathname, char *arg0, arg1, ..., argn, NULL,char *envp[]);int execlp(char *pathname, char *arg0, arg1, .., NULL);int execple(char *pathname, char *arg0, arg1, ..., NULL,char *envp[]);int execv(char *pathname, char *argv[]);int execve(char *pathname, char *argv[], char *envp[]);int execvp(char *pathname, char *argv[]);int execvpe(char *pathname, char *argv[], char *envp[]);函数名:exit功能: 终止程序用法: void exit(int status);函数名: exp功能: 指数函数用法: double exp(double x);函数名: gcvt功能: 把浮点数转换成字符串用法: char *gcvt(double value, int ndigit, char *buf);函数名: geninterrupt功能: 产生一个软中断函数名: getarccoords功能: 取得最后一次调用arc的坐标用法: void far getarccoords(struct arccoordstype far *arccoords); 函数名: getaspectratio功能: 返回当前图形模式的纵横比用法: void far getaspectratio(int far *xasp, int far *yasp);函数名: getbkcolor功能: 返回当前背景颜色用法: int far getbkcolor(void);函数名: getc功能: 从流中取字符用法: int getc(FILE *stream);函数名: getcbrk功能: 获取Control_break设置用法: int getcbrk(void);函数名: getch功能: 从控制台无回显地取一个字符用法: int getch(void);函数名: getchar功能: 从stdin流中读字符用法: int getchar(void);函数名: getche功能: 从控制台取字符(带回显)用法: int getche(void);函数名: getcolor功能: 返回当前画线颜色用法: int far getcolor(void);函数名: getcurdir功能: 取指定驱动器的当前目录用法: int getcurdir(int drive, char *direc);函数名: getcwd功能: 取当前工作目录用法: char *getcwd(char *buf, int n);函数名: getdate功能: 取DOS日期函数名: getdefaultpalette功能: 返回调色板定义结构用法: struct palettetype *far getdefaultpalette(void);函数名: getdisk功能: 取当前磁盘驱动器号用法: int getdisk(void);函数名: getdrivername功能: 返回指向包含当前图形驱动程序名字的字符串指针用法: char *getdrivename(void);函数名: getdta功能: 取磁盘传输地址用法: char far *getdta(void);函数名: getenv功能: 从环境中取字符串用法: char *getenv(char *envvar);函数名: getfat, getfatd功能: 取文件分配表信息用法: void getfat(int drive, struct fatinfo *fatblkp);函数名: getfillpattern功能: 将用户定义的填充模式拷贝到内存中用法: void far getfillpattern(char far *upattern);函数名: getfillsettings功能: 取得有关当前填充模式和填充颜色的信息用法: void far getfillsettings(struct fillsettingstype far *fillinfo); 函数名: getftime功能: 取文件日期和时间用法: int getftime(int handle, struct ftime *ftimep);函数名: getgraphmode功能: 返回当前图形模式用法: int far getgraphmode(void);函数名: getftime功能: 取文件日期和时间用法: int getftime(int handle, struct ftime *ftimep);函数名: getgraphmode功能: 返回当前图形模式用法: int far getgraphmode(void);函数名: getimage功能: 将指定区域的一个位图存到主存中用法: void far getimage(int left, int top, int right, int bottom,void far *bitmap);函数名: getlinesettings功能: 取当前线型、模式和宽度用法: void far getlinesettings(struct linesettingstype far *lininfo): 函数名: getmaxx功能: 返回屏幕的最大x坐标用法: int far getmaxx(void);函数名: getmaxy功能: 返回屏幕的最大y坐标用法: int far getmaxy(void);函数名: getmodename功能: 返回含有指定图形模式名的字符串指针用法: char *far getmodename(int mode_name);函数名: getmoderange功能: 取给定图形驱动程序的模式范围用法: void far getmoderange(int graphdriver, int far *lomode,int far *himode);函数名: getpalette功能: 返回有关当前调色板的信息用法: void far getpalette(struct palettetype far *palette);函数名: getpass功能: 读一个口令用法: char *getpass(char *prompt);函数名: getpixel功能: 取得指定像素的颜色用法: int far getpixel(int x, int y);函数名: gets功能: 从流中取一字符串用法: char *gets(char *string);函数名: gettext功能: 将文本方式屏幕上的文本拷贝到存储区用法: int gettext(int left, int top, int right, int bottom, void *destin);函数名: gettextinfo功能: 取得文本模式的显示信息用法: void gettextinfo(struct text_info *inforec);函数名: gettextsettings功能: 返回有关当前图形文本字体的信息用法: void far gettextsettings(struct textsettingstype far *textinfo); 函数名: gettime功能: 取得系统时间用法: void gettime(struct time *timep);函数名: getvect功能: 取得中断向量入口用法: void interrupt(*getvect(int intr_num));函数名: getverify功能: 返回DOS校验标志状态用法: int getverify(void);函数名: getviewsetting功能: 返回有关当前视区的信息用法: void far getviewsettings(struct viewporttype far *viewport); 函数名: getw功能: 从流中取一整数用法: int getw(FILE *strem);函数名: getx功能: 返回当前图形位置的x坐标用法: int far getx(void);函数名: gety功能: 返回当前图形位置的y坐标用法: int far gety(void);函数名: gmtime功能: 把日期和时间转换为格林尼治标准时间(GMT)用法: struct tm *gmtime(long *clock);函数名: gotoxy功能: 在文本窗口中设置光标用法: void gotoxy(int x, int y);函数名: gotoxy功能: 在文本窗口中设置光标用法: void gotoxy(int x, int y);函数名: graphdefaults功能: 将所有图形设置复位为它们的缺省值用法: void far graphdefaults(void);函数名: grapherrormsg功能: 返回一个错误信息串的指针用法: char *far grapherrormsg(int errorcode);函数名: graphresult功能: 返回最后一次不成功的图形操作的错误代码用法: int far graphresult(void);函数名: _graphfreemem功能: 用户可修改的图形存储区释放函数用法: void far _graphfreemem(void far *ptr, unsigned size);函数名: _graphgetmem功能: 用户可修改的图形存储区分配函数用法: void far *far _graphgetmem(unsigned size);函数名: harderr功能: 建立一个硬件错误处理程序用法: void harderr(int (*fptr)());函数名: hardresume功能: 硬件错误处理函数用法: void hardresume(int rescode);函数名: highvideo功能: 选择高亮度文本字符用法: void highvideo(void);函数名: hypot功能: 计算直角三角形的斜边长用法: double hypot(double x, double y);函数名: imagesize功能: 返回保存位图像所需的字节数用法: unsigned far imagesize(int left, int top, int right, int bottom); 函数名: initgraph功能: 初始化图形系统用法: void far initgraph(int far *graphdriver, int far *graphmode函数名: inport功能: 从硬件端口中输入用法: int inp(int protid);函数名: insline功能: 在文本窗口中插入一个空行用法: void insline(void);函数名: installuserdriver功能: 安装设备驱动程序到BGI设备驱动程序表中用法: int far installuserdriver(char far *name, int (*detect)(void));函数名: installuserfont功能: 安装未嵌入BGI系统的字体文件(CHR)用法: int far installuserfont(char far *name);函数名: int86功能: 通用8086软中断接口用法: int int86(int intr_num, union REGS *inregs, union REGS *outregs) 函数名: int86x功能: 通用8086软中断接口用法: int int86x(int intr_num, union REGS *insegs, union REGS *outregs, 函数名: intdos功能: 通用DOS接口用法: int intdos(union REGS *inregs, union REGS *outregs);函数名: intdosx功能: 通用DOS中断接口用法: int intdosx(union REGS *inregs, union REGS *outregs,struct SREGS *segregs);函数名: intr功能: 改变软中断接口用法: void intr(int intr_num, struct REGPACK *preg);函数名: ioctl功能: 控制I/O设备用法: int ioctl(int handle, int cmd[,int *argdx, int argcx]);函数名: isatty功能: 检查设备类型用法: int isatty(int handle);函数名: itoa功能: 把一整数转换为字符串用法: char *itoa(int value, char *string, int radix);函数名: kbhit功能: 检查当前按下的键用法: int kbhit(void);函数名: keep功能: 退出并继续驻留用法: void keep(int status, int size);函数名: kbhit功能: 检查当前按下的键用法: int kbhit(void);函数名: keep功能: 退出并继续驻留用法: void keep(int status, int size);函数名: labs用法: long labs(long n);函数名: ldexp功能: 计算value*2的幂用法: double ldexp(double value, int exp);函数名: ldiv功能: 两个长整型数相除, 返回商和余数用法: ldiv_t ldiv(long lnumer, long ldenom);函数名: lfind功能: 执行线性搜索用法: void *lfind(void *key, void *base, int *nelem, int width,int (*fcmp)());函数名: line功能: 在指定两点间画一直线用法: void far line(int x0, int y0, int x1, int y1);函数名: linerel功能: 从当前位置点(CP)到与CP有一给定相对距离的点画一直线用法: void far linerel(int dx, int dy);函数名: localtime功能: 把日期和时间转变为结构用法: struct tm *localtime(long *clock);函数名: lock功能: 设置文件共享锁用法: int lock(int handle, long offset, long length);函数名: log功能: 对数函数ln(x)用法: double log(double x);函数名: log10功能: 对数函数log用法: double log10(double x);函数名: longjump功能: 执行非局部转移用法: void longjump(jmp_buf env, int val);函数名: lowvideo功能: 选择低亮度字符用法: void lowvideo(void);函数名: lrotl, _lrotl功能: 将无符号长整型数向左循环移位用法: unsigned long lrotl(unsigned long lvalue, int count);unsigned long _lrotl(unsigned long lvalue, int count);函数名: lsearch功能: 线性搜索用法: void *lsearch(const void *key, void *base, size_t *nelem,size_t width, int (*fcmp)(const void *, const void *));函数名: lseek功能: 移动文件读/写指针用法: long lseek(int handle, long offset, int fromwhere);main()主函数每一C 程序都必须有一main() 函数, 可以根据自己的爱好把它放在程序的某个地方。
C# API大全
C# API 大全(一)C# APIC:\ProgramFiles\MicrosoftVisual Studio .NET\ FrameworkSDK\Samples\ Technologies\ Interop\PlatformInvoke\ WinAPIs\CS目录下有大量的调用API 的例子。
一、调用格式using System.Runtime.InteropServices; //引用此名称空间,简化后面的代码//使用DllImportAttribute特性来引入api函数,注意声明的是空方法,即方法体为空。
[DllImport("user32.dll")]public static extern ReturnType FunctionName(type arg1,type arg2,...); //调用时与调用其他方法并无区别可以使用字段进一步说明特性,用逗号隔开,如:[ DllImport( "kernel32", EntryPoint="GetVersionEx" )] DllImportAttribute特性的公共字段如下:1、CallingConvention 指示向非托管实现传递方法参数时所用的CallingConvention 值。
CallingConvention.Cdecl : 调用方清理堆栈。
它使您能够调用具有 varargs 的函数。
CallingConvention.StdCall : 被调用方清理堆栈。
它是从托管代码调用非托管函数的默认约定。
2、CharSet 控制调用函数的名称版本及指示如何向方法封送 String 参数。
此字段被设置为 CharSet 值之一。
如果 CharSet 字段设置为 Unicode,则所有字符串参数在传递到非托管实现之前都转换成 Unicode 字符。
这还导致向DLL EntryPoint 的名称中追加字母“W”。
第24章 C API概述
(1)Lua支持垃圾自动回收;
(2)Lua是使用动态类型,而C是静态类型
Lua中定义的所有内容都有一个lua_前缀。
Lua库中没有定义任何全局变量。它将所有状态都保存在动态结构lua_State中。所有C API都要求传入一个指向该结构的指针
luaL_newstate
应用程序代码和库代码都使用同样的API来与Lua通信,这些API称为C API
C API是一组能够使C代码与Lua交互的函数,其中包括
读写Lua全局变量、调用Lua函数、运行一段Lua代码,以及注册C函数一个Lua代码调用。
Lua和C语言通信的主要方法是一个无所不在的虚拟栈,几乎所有API调用都会操作这个栈上的值。Lua与C之间的数据交换也是通过这个栈完成的。
luaL_openlibs
luaL_loadbuffer
lua_pcall
lua_push*(lua_State *L,...)
lua_checkstack(lu Nhomakorabea_State *L, int sz);
lua_State中的索引
检查类型函数lua_is*(lua_State *L, int index)
lua_atpanic
lua_cpcall
lua_type()
lua_to*()函数
lua_objlen函数可以返回一个对象的“长度”
lua_typename可以讲一个类型编码转换为类型名
lua_gettop()
lua_settop()
lua_pushvalue
lua_remove
lua_insert
lua_replace
C#中win32API大全一览-程序开发-红黑联盟
C#中win32API大全一览-程序开发-红黑联盟C# 中 win32 API大全一览文章录入:王子责任编辑: 23【字体:小大】在C#中做很多应用需要使用win32 API,但发现原型函数的一些数据类型看起来非常费劲,甚至在C#中“没有”这种数据类型,查阅了一下资料,数据类型对应关系整理如下,希望对大家有用:BOOL=System.Int32BOOLEAN=System.Int32BYTE=System.UInt16CHAR=System.Int16COLORREF=System.UInt32DWORD=System.UInt32DWORD32=System.UInt32DWORD64=System.UInt64FLOAT=System.FloatHACCEL=System.IntPtrHANDLE=System.IntPtrHBITMAP=System.IntPtrHBRUSH=System.IntPtrHCONV=System.IntPtrHCONVLIST=System.IntPtrHCURSOR=System.IntPtrHDC=System.IntPtrHDDEDATA=System.IntPtrHDESK=System.IntPtrHDROP=System.IntPtrHDWP=System.IntPtrHENHMETAFILE=System.IntPtrHFILE=System.IntPtrHFONT=System.IntPtrHGDIOBJ=System.IntPtrHGLOBAL=System.IntPtrHHOOK=System.IntPtrHICON=System.IntPtrHIMAGELIST=System.IntPtrHIMC=System.IntPtrHINSTANCE=System.IntPtrHKEY=System.IntPtrHLOCAL=System.IntPtrHMENU=System.IntPtrHMETAFILE=System.IntPtrHMONITOR=System.IntPtr HPALETTE=System.IntPtr HPEN=System.IntPtrHRGN=System.IntPtr HRSRC=System.IntPtrHSZ=System.IntPtr HWINSTA=System.IntPtr HWND=System.IntPtrINT=System.Int32INT32=System.Int32INT64=System.Int64LONG=System.Int32LONG32=System.Int32LONG64=System.Int64 LONGLONG=System.Int64 LPARAM=System.IntPtr LPBOOL=System.Int16[] LPBYTE=System.UInt16[] LPCOLORREF=System.UInt32[] LPCSTR=System.String LPCTSTR=System.String LPCVOID=System.UInt32 LPCWSTR=System.String LPDWORD=System.UInt32[] LPHANDLE=System.UInt32 LPINT=System.Int32[] LPLONG=System.Int32[] LPSTR=System.String LPTSTR=System.String LPVOID=System.UInt32 LPWORD=System.Int32[] LPWSTR=System.String LRESULT=System.IntPtr PBOOL=System.Int16[] PBOOLEAN=System.Int16[] PBYTE=System.UInt16[] PCHAR=System.Char[] PCSTR=System.String PCTSTR=System.String PCWCH=System.UInt32 PCWSTR=System.UInt32 PDWORD=System.Int32[] PFLOAT=System.Float[]PHKEY=System.UInt32 PINT=System.Int32[] PLCID=System.UInt32 PLONG=System.Int32[] PLUID=System.UInt32 PSHORT=System.Int16[] PSTR=System.String PTBYTE=System.Char[] PTCHAR=System.Char[] PTSTR=System.String PUCHAR=System.Char[] PUINT=System.UInt32[] PULONG=System.UInt32[] PUSHORT=System.UInt16[] PVOID=System.UInt32 PWCHAR=System.Char[] PWORD=System.Int16[] PWSTR=System.String REGSAM=System.UInt32 SC_HANDLE=System.IntPtr SC_LOCK=System.IntPtr SHORT=System.Int16 SIZE_T=System.UInt32 SSIZE_=System.UInt32 TBYTE=System.Char TCHAR=System.Char UCHAR=System.ByteUINT=System.UInt32 UINT32=System.UInt32 UINT64=System.UInt64 ULONG=System.UInt32 ULONG32=System.UInt32 ULONG64=System.UInt64 ULONGLONG=System.UInt64 USHORT=System.UInt16 WORD=System.UInt16 WPARAM=System.IntPtr。
C语言标准库函数大全
相册
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);
c语言数学函数集
c语言数学函数集C语言数学函数集在C语言中,数学函数是非常重要的一部分,它们提供了各种数学运算和计算的功能,可以帮助我们解决各种数学问题。
本文将介绍C语言中常用的数学函数集合,包括数值运算、三角函数、指数函数、对数函数等。
一、数值运算函数1. fabs函数:用于计算一个数的绝对值。
例如,fabs(-5)的返回值是5。
2. ceil函数:用于向上取整。
例如,ceil(4.3)的返回值是5。
3. floor函数:用于向下取整。
例如,floor(4.7)的返回值是4。
4. fmod函数:用于计算两个数的余数。
例如,fmod(10.5, 3)的返回值是1.5。
5. pow函数:用于计算一个数的幂。
例如,pow(2, 3)的返回值是8。
二、三角函数1. sin函数:用于计算一个角度的正弦值。
例如,sin(30)的返回值是0.5。
2. cos函数:用于计算一个角度的余弦值。
例如,cos(60)的返回值是0.5。
3. tan函数:用于计算一个角度的正切值。
例如,tan(45)的返回值是1。
4. asin函数:用于计算一个值的反正弦值。
例如,asin(0.5)的返回值是30。
5. acos函数:用于计算一个值的反余弦值。
例如,acos(0.5)的返回值是60。
三、指数函数和对数函数1. exp函数:用于计算一个数的指数值。
例如,exp(1)的返回值是2.71828。
2. log函数:用于计算一个数的自然对数值。
例如,log(10)的返回值是2.30259。
3. log10函数:用于计算一个数的以10为底的对数值。
例如,log10(100)的返回值是2。
四、其他数学函数1. sqrt函数:用于计算一个数的平方根。
例如,sqrt(16)的返回值是4。
2. rand函数:用于生成一个随机数。
例如,rand()的返回值是一个0到RAND_MAX之间的随机整数。
3. abs函数:用于计算一个整数的绝对值。
例如,abs(-5)的返回值是5。
C#API基础介绍
C#API 基础介绍API(Application Programming Interface),我想大家不会陌生,它是我们Windows 编程的常客,虽然基于.Net平台的C#有了强大的类库,但是,我们还是不能否认API在Windows编程中的重要性。
大多数的编程语言都支持API编程,而.Net平台中的MFC (Microsoft Foundation Class Library)构架本身就封装了大部分的API。
做为程序员,我们需要了解API从字面上了解便是编程接口,因此,做为开发者,需要了解的只是API的使用方法。
API根据操作系统、处理器及功能性的不同而拥有很多不同的类型。
操作系统特用的API:每种操作系统都有许多通用的API以及一些特用的API,这些特用的API只能在当前操作系统中执行。
例如:Windows NT 支持MS-DOS, Win16, Win32, POSIX (Portable Operating System Interface), OS/2 console API; 而Windows 95 支持MS-DOS, Win16 以及Win32 APIs.Win16 & Win32 API:Win16是为十六位处理器开发的,早期的操作系统均支持。
Win32则是为32位处理器开发。
它可移植性强,被大部分的处理器所支持。
Win32 API在库名后有一个”32”后缀。
比如KERNEL32,USER32等。
所有API在下面3个库中得以运行:KernelUserGDI1. KERNEL他的库名为KERNEL32.DLL, 他主要用于产生与操作系统之间的关联:程序加载上下文选择.文件输入输出.内存管理.例如:GlobalMemoryStatus 函数就包括当前物理内存及虚拟内存的使用信息。
2. USER这个类库在Win32中名叫USER32.DLL。
它允许管理全部的用户接口,比如:窗口菜单对话框图标等.,例如:DrawIcon 函数将在指定的设备关联上“画”出图标或者鼠标。
C API函数大全
C++ API函数大全PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景PlgBlt 复制一幅位图,同时将其转换成一个平行四边形。
利用它可对位图进行旋转处理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 关闭一个内核对象。
CC++通过WMI和系统API函数获取获取系统硬件配置信息
CC++通过WMI和系统API函数获取获取系统硬件配置信息转载:转载:转载:头⽂件WMIInfo.h1/*************************************************************************************************2*3* File Name : WMIInof.h4*5* Created : 2016/10/106*7* Author :8*9* Model :10*11* Description : [[CN]] 获取系统硬件配置信息 [[CN]]12*13**************************************************************************************************/14 #ifndef _WMIINFO_H_15#define _WMIINFO_H_1617 #include <WbemIdl.h>18#pragma comment(lib,"WbemUuid.lib")1920class CWmiInfo21 {22public:23 CWmiInfo();24 ~CWmiInfo();2526public:27 HRESULT InitWmi(); //初始化WMI28 HRESULT ReleaseWmi(); //释放2930/*获取⼀个类成员31 *@param [in ] ClassName Example: "Win32_Processor"32 *@param [in ] ClassMember Example: "SerialNumber"33 *@param [out] chRetValue34 *@param return TRUE success; false fail3536 Example:37 CString strRetValue;38 GetSingleItemInfo(_T("Win32_Processor"),_T("Caption"),strRetValue);39*/40 BOOL GetSingleItemInfo(CString ClassName,CString ClassMember,CString &chRetValue);4142/*获取⼀个类的多个成员43 *@param [in ] ClassName Example: "Win32_Processor"44 *@param [in ] ClassMember Example: "SerialNumber"45 *@param [in ] n 成员个数46 *@param [out] chRetValue47 *@param return TRUE success; false fail4849 Example:50 CString strRetValue;CString [] strClassMem = {_T("Caption"),_T("CurrentClockSpeed"),_T("DeviceID"),_T("Manufacturer"),_T("Manufacturer")};51 GetGroupItemInfo(_T("Win32_Processor"),strClassMem,5,strRetValue);52*/53 BOOL GetGroupItemInfo(CString ClassName,CString ClassMember[],int n,CString &chRetValue);5455private:56void VariantToString(const LPVARIANT,CString &) const;//将Variant类型的变量转换为CString5758private:59 IEnumWbemClassObject* m_pEnumClsObj;60 IWbemClassObject* m_pWbemClsObj;61 IWbemServices* m_pWbemSvc;62 IWbemLocator* m_pWbemLoc;63 };64#endif实现⽂件WMIInfo.cpp1 #include "stdafx.h"2 #include "WmiInfo.h"34 CWmiInfo::CWmiInfo(void)5 {6 m_pWbemSvc=NULL;7 m_pWbemLoc=NULL;8 m_pEnumClsObj = NULL;9 }1011 CWmiInfo::~CWmiInfo(void)12 {13 m_pWbemSvc=NULL;14 m_pWbemLoc=NULL;15 m_pEnumClsObj = NULL;16 }1718 HRESULT CWmiInfo::InitWmi()19 {20 HRESULT hr;2122//⼀、初始化COM组件23//初始化COM24 hr=::CoInitializeEx(0,COINIT_MULTITHREADED);25if (SUCCEEDED(hr) || RPC_E_CHANGED_MODE == hr)26 {27//设置进程的安全级别,(调⽤COM组件时在初始化COM之后要调⽤CoInitializeSecurity设置进程安全级别,否则会被系统识别为病毒)28 hr=CoInitializeSecurity(NULL,29 -1,30 NULL,31 NULL,32 RPC_C_AUTHN_LEVEL_PKT,33 RPC_C_IMP_LEVEL_IMPERSONATE,34 NULL,35 EOAC_NONE,36 NULL);37//VERIFY(SUCCEEDED(hr));3839//⼆、创建⼀个WMI命名空间连接40//创建⼀个CLSID_WbemLocator对象41 hr=CoCreateInstance(CLSID_WbemLocator,420,43 CLSCTX_INPROC_SERVER,44 IID_IWbemLocator,45 (LPVOID*)&m_pWbemLoc);46// VERIFY(SUCCEEDED(hr));4748//使⽤m_pWbemLoc连接到"root\cimv2"并设置m_pWbemSvc的指针49 hr=m_pWbemLoc->ConnectServer(CComBSTR(L"ROOT\\CIMV2"),50 NULL,51 NULL,520,53 NULL,540,550,56 &m_pWbemSvc);57// VERIFY(SUCCEEDED(hr));5859//三、设置WMI连接的安全性60 hr=CoSetProxyBlanket(m_pWbemSvc,61 RPC_C_AUTHN_WINNT,62 RPC_C_AUTHZ_NONE,63 NULL,64 RPC_C_AUTHN_LEVEL_CALL,65 RPC_C_IMP_LEVEL_IMPERSONATE,66 NULL,67 EOAC_NONE);68// VERIFY(SUCCEEDED(hr));6970 }71return(hr);72 }7374 HRESULT CWmiInfo::ReleaseWmi()75 {76 HRESULT hr;7778if (NULL != m_pWbemSvc)79 {80 hr=m_pWbemSvc->Release();81 }82if (NULL != m_pWbemLoc)83 {84 hr=m_pWbemLoc->Release();85 }86if (NULL != m_pEnumClsObj)87 {88 hr=m_pEnumClsObj->Release();89 }9091 ::CoUninitialize();9293return(hr);94 }9596 BOOL CWmiInfo::GetSingleItemInfo(CString ClassName,CString ClassMember,CString &chRetValue)97 {98 USES_CONVERSION;99100 CComBSTR query("SELECT * FROM ");101 VARIANT vtProp;102 ULONG uReturn;103 HRESULT hr;104 BOOL bRet = FALSE;105106if (NULL != m_pWbemSvc)107 {108//查询类ClassName中的所有字段,保存到m_pEnumClsObj中109 query+=CComBSTR(ClassName);110 hr=m_pWbemSvc->ExecQuery(CComBSTR("WQL"),query,WBEM_FLAG_FORWARD_ONLY|WBEM_FLAG_RETURN_IMMEDIATELY,1110,&m_pEnumClsObj);112if (SUCCEEDED(hr))113 {114//初始化vtProp值115 VariantInit(&vtProp);116 uReturn=0;117118//返回从当前位置起的第⼀个对象到m_pWbemClsObj中119 hr=m_pEnumClsObj->Next(WBEM_INFINITE,1,&m_pWbemClsObj,&uReturn);120if(SUCCEEDED(hr)&&uReturn>0)121 {122//从m_pWbemClsObj中找出ClassMember标识的成员属性值,并保存到vtProp变量中123 hr=m_pWbemClsObj->Get(CComBSTR(ClassMember),0,&vtProp,0,0);124if (SUCCEEDED(hr))125 {126 VariantToString(&vtProp,chRetValue);127 VariantClear(&vtProp);//清空vtProp128 bRet = TRUE;129 }130 }131 }132 }133if(NULL != m_pEnumClsObj)134 {135 hr=m_pEnumClsObj->Release();136 m_pEnumClsObj = NULL;137 }138if(NULL != m_pWbemClsObj)139 {140 hr=m_pWbemClsObj->Release();141 m_pWbemClsObj = NULL;142 }143return bRet;144 }145146 BOOL CWmiInfo::GetGroupItemInfo(CString ClassName,CString ClassMember[],int n,CString &chRetValue)147 {148 USES_CONVERSION;149150 CComBSTR query("SELECT * FROM ");151 CString result,info;152 VARIANT vtProp;153 ULONG uReturn;154 HRESULT hr;155int i;156 BOOL bRet = FALSE;157if (NULL != m_pWbemSvc)158 {159 query+=CComBSTR(ClassName);160 hr=m_pWbemSvc->ExecQuery(CComBSTR("WQL"),query,WBEM_FLAG_FORWARD_ONLY|WBEM_FLAG_RETURN_IMMEDIATELY,0,&m_pEnumClsObj); 161if (SUCCEEDED(hr))162 {163 VariantInit(&vtProp); //初始化vtProp变量164if(m_pEnumClsObj)165 {166 Sleep(10);167 uReturn=0;168 hr=m_pEnumClsObj->Next(WBEM_INFINITE,1,&m_pWbemClsObj,&uReturn);169if (SUCCEEDED(hr) &&uReturn>0)170 {171for(i=0;i<n;++i)172 {173 hr=m_pWbemClsObj->Get(CComBSTR(ClassMember[i]),0,&vtProp,0,0);174if (SUCCEEDED(hr))175 {176 VariantToString(&vtProp,info);177 chRetValue+=info+_T("\t");178 VariantClear(&vtProp);179 bRet = TRUE;180 }181 }182 chRetValue+=_T("\r\n");183 }184 }185 }186 }187188if(NULL != m_pEnumClsObj)189 {190 hr=m_pEnumClsObj->Release();191 m_pEnumClsObj=NULL;192 }193if(NULL != m_pWbemClsObj)194 {195 hr=m_pWbemClsObj->Release();196 m_pWbemClsObj=NULL;197 }198return bRet;199 }200201void CWmiInfo::VariantToString(const LPVARIANT pVar,CString &chRetValue) const 202 {203 USES_CONVERSION;204205 CComBSTR HUGEP* pBstr;206 BYTE HUGEP* pBuf;207 LONG low,high,i;208 HRESULT hr;209210switch(pVar->vt)211 {212case VT_BSTR:213 {214 chRetValue=W2T(pVar->bstrVal);215 }216break;217case VT_BOOL:218 {219if(VARIANT_TRUE==pVar->boolVal)220 chRetValue="是";221else222 chRetValue="否";223 }224break;225case VT_I4:226 {227 chRetValue.Format(_T("%d"),pVar->lVal);228 }229break;230case VT_UI1:231 {232 chRetValue.Format(_T("%d"),pVar->bVal);233 }234break;235case VT_UI4:236 {237 chRetValue.Format(_T("%d"),pVar->ulVal);238 }239break;240241case VT_BSTR|VT_ARRAY:242 {243 hr=SafeArrayAccessData(pVar->parray,(void HUGEP**)&pBstr);244 hr=SafeArrayUnaccessData(pVar->parray);245 chRetValue=W2T(pBstr->m_str);246 }247break;248249case VT_I4|VT_ARRAY:250 {251 SafeArrayGetLBound(pVar->parray,1,&low);252 SafeArrayGetUBound(pVar->parray,1,&high);253254 hr=SafeArrayAccessData(pVar->parray,(void HUGEP**)&pBuf);255 hr=SafeArrayUnaccessData(pVar->parray);256 CString strTmp;257 high=min(high,MAX_PATH*2-1);258for(i=low;i<=high;++i)259 {260 strTmp.Format(_T("%02X"),pBuf[i]);261 chRetValue+=strTmp;262 }263 }264break;265default:266break;267 }268 }调⽤1 #include "stdafx.h"2 #include <iostream>3 #include "WMIInfo.h"45int main()6 {7 CWmiInfo WMI;8 WMI.InitWmi();910// ⽹卡原⽣MAC地址11 CString strNetwork;12 WMI.GetSingleItemInfo(L"Win32_NetworkAdapter WHERE (MACAddress IS NOT NULL) AND (NOT (PNPDeviceID LIKE 'ROOT%'))",L"PNPDeviceID",strNetwork);13if (!strNetwork.IsEmpty())14 {15 wcout << "⽹卡原⽣MAC地址: "<< strNetwork.GetBuffer() << endl;16 }1718// 硬盘序列号19 CString strDiskDrive;20 WMI.GetSingleItemInfo(L"Win32_DiskDrive WHERE (SerialNumber IS NOT NULL) AND (MediaType LIKE 'Fixed hard disk%')",L"SerialNumber",strDiskDrive);2122if (!strDiskDrive.IsEmpty())23 {24 wcout << "硬盘序列号 : " << strDiskDrive.GetBuffer() << endl;25 }2627// 主板序列号28 CString strBaseBoard;29 WMI.GetSingleItemInfo(L"Win32_BaseBoard WHERE (SerialNumber IS NOT NULL)",L"SerialNumber",strBaseBoard);3031if (!strBaseBoard.IsEmpty())32 {33 wcout << "主板序列号 : " << strBaseBoard.GetBuffer() << endl;34 }3536// 处理器ID37 CString strProcessorID;38 WMI.GetSingleItemInfo(L"Win32_Processor WHERE (ProcessorId IS NOT NULL)",L"ProcessorId",strProcessorID);3940if (!strProcessorID.IsEmpty())41 {42 wcout << "处理器ID : " << strProcessorID.GetBuffer() << endl;43 }4445// BIOS序列号46 CString strBIOS;47 WMI.GetSingleItemInfo(L"Win32_BIOS WHERE (SerialNumber IS NOT NULL)",L"SerialNumber",strBIOS);4849if (!strBIOS.IsEmpty())50 {51 wcout << "BIOS序列号 : " << strBIOS.GetBuffer() << endl;52 }5354// 主板型号55 CString strBaseBoardType;56 WMI.GetSingleItemInfo(L"Win32_BaseBoard WHERE (Product IS NOT NULL)",L"Product",strBaseBoardType);5758if (!strBaseBoardType.IsEmpty())59 {60 wcout << "主板型号 : " << strBaseBoardType.GetBuffer() << endl;61 }6263// ⽹卡当前MAC地址64 CString strCurrentNetwork;65 WMI.GetSingleItemInfo(L"Win32_NetworkAdapter WHERE (MACAddress IS NOT NULL) AND (NOT (PNPDeviceID LIKE 'ROOT%'))",L"MACAddress",strCurrentNetwork); 6667if (!strCurrentNetwork.IsEmpty())68 {69 wcout << "⽹卡当前MAC地址: " << strCurrentNetwork.GetBuffer() << endl;70 }71 WMI.ReleaseWmi();7273 getchar();74return0;75 }。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++ API函数大全PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景PlgBlt 复制一幅位图,同时将其转换成一个平行四边形。
利用它可对位图进行旋转处理 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 关闭一个内核对象。
其中包括文件、文件映射、进程、线程、安全和同步对象等CompareFileTime 对比两个文件的时间CopyFile 复制文件CreateDirectory 创建一个新目录CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台CreateFileMapping 创建一个新的文件映射对象DeleteFile 删除指定文件DeviceIoControl 对设备执行指定的操作DosDateTimeToFileTime 将DOS日期和时间值转换成一个win32 FILETIME 值FileTimeToDosDateTime 将一个win32 FILETIME 值转换成DOS日期和时间值FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间FileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构FindClose 关闭由FindFirstFile函数创建的一个搜索句柄FindFirstFile 根据文件名查找文件FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘GetBinaryType 判断文件是否可以执行GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数GetCurrentDirectory 在一个缓冲区中装载当前目录GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息GetDriveType 判断一个磁盘驱动器的类型GetExpandedName 取得一个压缩文件的全名GetFileAttributes 判断指定文件的属性GetFileInformationByHandle 这个函数提供了获取文件信息的一种机制GetFileSize 判断文件长度GetFileTime 取得指定文件的时间信息GetFileType 在给出文件句柄的前提下,判断文件类型GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区GetFullPathName 获取指定文件的完整路径名GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径GetOverlappedResult 判断一个重叠操作当前的状态GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表GetPrivateProfileString 为初始化文件中指定的条目取得字串GetProfileInt 取得win.ini初始化文件中指定条目的一个整数值GetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表GetProfileString 为win.ini初始化文件中指定的条目取得字串GetShortPathName 获取指定文件的短路径名GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用GetTempPath 获取为临时文件指定的路径GetVolumeInformation 获取与一个磁盘卷有关的信息GetWindowsDirectory 获取Windows目录的完整路径名hread 参考lreadhwrite 参考lwrite函数lclose 关闭指定的文件lcreat 创建一个文件llseek 设置文件中进行读写的当前位置LockFile 锁定文件的某一部分,使其不与其他应用程序共享LockFileEx 与LockFile相似,只是它提供了更多的功能lopen 以二进制模式打开指定的文件lread 将文件中的数据读入内存缓冲区lwrite 将数据从内存缓冲区写入一个文件LZClose 关闭由LZOpenFile 或LZInit函数打开的一个文件LZCopy 复制一个文件LZInit 这个函数用于初始化内部缓冲区LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件LZRead 将数据从文件读入内存缓冲区LZSeek 设置一个文件中进行读写的当前位置MapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间MoveFile 移动文件OpenFile 这个函数能执行大量不同的文件操作OpenFileMapping 打开一个现成的文件映射对象QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。
该函数可判断当前的设备映射情况ReadFile 从文件中读出数据ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调RegCloseKey 关闭系统注册表中的一个项(或键)RegConnectRegistry 访问远程系统的部分注册表RegCreateKey 在指定的项下创建或打开一个项RegCreateKeyEx 在指定项下创建新项的更复杂的方式。
在Win32环境中建议使用这个函数RegDeleteKey 删除现有项下方一个指定的子项RegDeleteValue 删除指定项下方的一个值RegEnumKey 枚举指定项的子项。
在Win32环境中应使用RegEnumKeyExRegEnumKeyEx 枚举指定项下方的子项RegEnumValue 枚举指定项的值RegFlushKey 将对项和它的子项作出的改动实际写入磁盘RegGetKeySecurity 获取与一个注册表项有关的安全信息RegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制RegOpenKey 打开一个现有的注册表项RegOpenKeyEx 打开一个现有的项。
在win32下推荐使用这个函数RegQueryInfoKey 获取与一个项有关的信息RegQueryValue 取得指定项或子项的默认(未命名)值RegQueryValueEx 获取一个项的设置值RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息RegRestoreKey 从一个磁盘文件恢复注册表信息RegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件RegSetKeySecurity 设置指定项的安全特性RegSetValue 设置指定项或子项的默认值RegSetValueEx 设置指定项的值RegUnLoadKey 卸载指定的项以及它的所有子项RemoveDirectory 删除指定目录SearchPath 查找指定文件SetCurrentDirectory 设置当前目录SetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾SetFileAttributes 设置文件属性SetFilePointer 在一个文件中设置当前的读写位置SetFileTime 设置文件的创建、访问及上次修改时间SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果SetVolumeLabel 设置一个磁盘的卷标(Label)SystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构UnlockFile 解除对一个文件的锁定UnlockFileEx 解除对一个文件的锁定UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射VerFindFile 用这个函数决定一个文件应安装到哪里VerInstallFile 用这个函数安装一个文件VerLanguageName 这个函数能根据16位语言代码获取一种语言的名称VerQueryValue 这个函数用于从版本资源中获取信息WriteFile 将数据写入一个文件WriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调WritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值WritePrivateProfileString 在初始化文件指定小节内设置一个字串WriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串4. API之打印函数AbortDoc 取消一份文档的打印AbortPrinter 删除与一台打印机关联在一起的缓冲文件AddForm 为打印机的表单列表添加一个新表单AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。