自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (4)
  • 收藏
  • 关注

原创 网络编程socket套接字函数的封装

背景socke相关的函数简单到几乎没有什么错误处理,我们知道,系统调用不能保证每次都成功,必须进行出错处理,这样一方面可以保证程序逻辑正常,另一方面可以迅速得到故障信息。为使错误处理的代码不影响主程序的可读性,我们把与socket相关的一些系统函数加上错误处理代码包装成新的函数,做成一个模块base_socket_wrap.h 文件#ifndef __SOCKET_WRAP_H_#define __SOCKET_WRAP_H_void perr_exit(const char *s)

2021-01-05 18:55:15 145 1

转载 海思芯片上GPIO和PWM操作

一、GPIO的配置GPIO的设置一般为三步:1设置gpio端口复用、2 设置GPIO口的方向、3 读取或者写入GPIO值;第一步不是每个GPIO口都是要配置的,如果你设置的GPIO端口有复用功能,那么你需要对GPIO对应复用寄存器进行配置,例如:文档中GPIO5_5是有复用功能的,0:PWM_OUT0;1:GPIO5_5,所以把复用寄存器设置为1就是表示为GPIO5_5;但有些GPIO端口是没有复用功能的,例如GPIO0_0,这个就不需要复用寄存器的设置;1、设置gpio端口复用...

2020-07-22 08:34:56 2221

原创 设置嵌入式linux的ip地址和mask地址和网关

int GetDefGateway( unsigned int *pGateway ){ FILE *fp = NULL; unsigned char Line[128], Iface[10]; unsigned int Dest, Gateway, Flags, RefCnt, Use, Metric, Mask; if( pGateway == NULL ) { debug_print_ipv4_priv("pGateway is null .

2020-07-20 19:02:16 626

原创 获取嵌入式linux的ip地址和mask地址和网关

int Hank_GetIPAddressCfg( char * iface,unsigned int *ip, unsigned int *mask ,unsignedint *gwip)

2020-07-20 18:52:09 599 1

原创 网络摄像机产品介绍以及学习

网络摄像机定义网络摄像机,也叫IP摄像机,即IPCamera,简称IPC,近几年得益于网络带宽,芯片技术,算法技术,存储技术的进不而得到大力发展。IPC的特点主要体现在“IP”上,即支持网络协议的摄像机,IPC可以看成是“模拟摄像机+视频编码器”的结合体,从图像质量指标讲,又可实现高于“模拟摄像机+视频编码器”能达到的效果。IPC是新一代网络视频监控系统中的核心硬件设备,通常采用嵌入式

2014-06-05 11:08:05 4295

原创 视频音频编解码MPEG4与H.264

一、音频压缩编码标准。1、  MPEG1标准MPEG1音频压缩算法特点:1)        编码器的输入信号为线性PCM信号,采样频率是32KHz,44.1kHz或者48kHz,输出码率为32-384Kbit/s2)        压缩后的比特流支持单声道和双声道3)        MPEG1音频压缩标准提供三个独立的压缩层次:层1(Layer1)、层2(L

2013-10-28 11:27:07 1791

原创 MFC字符串类型和相互转换

MFC下的常用字符串数据类型表示的含义:L:Long  长  P:Point  指针  C:Const  常量  W:Wchar_t  宽字符  T:TCHAR   STR:String  字符串在看看MFC下各种数据类型的定义:typedef char *LPSTR; typedef const char *LPCSTR; typedef w

2013-09-28 16:11:58 1298

原创 wstring转string wstring转char*

wstring转换为stringwstring wstr=_T("你猜你猜"); int size=WideCharToMultiByte(CP_ACP,0,wstr.c_str(),-1,NULL,0,NULL,NULL); char *ch=new char[size+1]; if(!WideCharToMultiByte(CP_ACP,0,wstr.c_str(),-1,ch

2013-09-27 10:43:42 1672

原创 wchar_t转char wchar_t*转char*

#include第一种方法string   tp; wchar_t   *s; char   *d; tp=s; d=tp.c_str(); 第二种方法:自定义函数实现#include #include void charTowchar(const char *chr, wchar_t *wchar, int size){ M

2013-09-27 10:40:42 1176

原创 CString转char* CString转string CString转int

CString 头文件#include string 头文件#include CString 转char *CString cstr;char *p = (LPSTR)(LPCTSTR)cstr;string 转 CStringCString.format(”%s”, string.c_str());char 转 CStringCString

2013-09-27 10:25:11 839

转载 MFC中容器类的使用

对于MFC中所提到的基本容器类,做一个基本的介绍和编程操作。  如有数据结构基础,可以直接看第四部分对容器类的操作。  第一,MFC提供三种基本的容器类:arrays(数组), lists(链表), maps(映射,也称作字典).  第二,各容器类的特征分类类型排序?索引?插入元素查找特定元素重复的元素?

2013-08-24 10:23:37 1314

原创 C++ vector容器使用 排序

#include #include #include #include using namespace std;int main(){ using std::vector; vector vInts; vInts.push_back(4); vInts.push_back(2); vInts.push_back(3); vInt

2013-03-02 11:41:08 1036

原创 C++读文件下的所有文件

#include #include #include using namespace std;void find(char *MyPath){ char szFind[100]; char szFile[100]; WIN32_FIND_DATA FindFileData; strcpy(szFind,MyPath); //

2013-02-28 11:55:30 439

原创 C++ MFC对话框打开文件

FileDlg.DoModal();会去打开一个文件对话框,然后我会选择一个文件,那么这个时候这个文件就被打开了然后用GetPathName()方式获取文件路径/*返回字符串文件路径*/CString strFilePathFun(){ char szFileFilter[]= "All File(*.*)|*.*||"; CFileDialog FileDl

2013-02-21 09:22:58 1210

原创 Codejock Xtreme ToolkitPro 静态链接XTP库以及皮肤库的使用

源码下载包含使用说明:http://download.csdn.net/download/weihuanzhen_yeah_net/5017822 1.配置_XTP_STATICLINK使能静态链接包含头文件使能静态链接:#define _XTP_STATICLINK 2.包含静态库声明头文件:#include  3.在你工程里的rc2文件中,包含如下语句,否则调用

2013-01-22 11:57:39 3028

转载 嵌入式linux软件工程师的总结和规划

1、 分享第一条经验:“学历代表过去、能力代表现在、学习力代表未来。”其实这是一个来自国外教育领域的一个研究结果。相信工作过几年、十几年的朋友对这个道理有些体会吧。但我相信这一点也很重要:“重要的道理明白太晚将抱憾终生!”所以放在每一条,让刚刚毕业的朋友们早点看到哈!    2、 一定要确定自己的发展方向,并为此目的制定可行的计划。不要说什么,“我刚毕业,还不知道将来可能做什么?”,“跟着感觉

2013-01-11 09:02:17 1724 2

原创 VC TCHAR转char ~ BSTR转换成char*

TCHARTCHAR是通过define定义的字符串宏C++支持两种字符串,即常规的ANSI编码(使用""包裹)和Unicode编码(使用L""包裹)#include int main(void){_TCHAR* tchar_str="weihuanzhen";char  char_str[256];sprintf(char_str, "%S", tchar_st

2012-12-22 09:01:37 1192 1

sourceinsight_Setup_带注册码

sourceinsight_安装包,不是绿色版的_但是带注册码,输入直接可以实用,我用win7旗舰版60位亲测的,希望能帮到大家

2014-03-26

Codejock.Xtreme.Toolkit.Pro

Xtreme ToolkitPro界面库,一步安装,不需注册,本rar包中,包含本人有皮肤库测试方法的笔记readme,其中有动态库的连接方法,以及函数的调用和头文件的包含……

2013-01-22

Linux超强归纳总结秘籍(华为内部)

资料很完整,是华为内部linux资料,各命令,各种技巧都很全,归纳的很好,希望可以帮到大家! 高清文字,高含金量文档,高实用技巧,下载绝不忽悠 一共有4章: 1:命令行操作以及常用命令使用 2:文件查看以及编辑查找技巧 3:网络配置以及操作秘籍 4:常用使用技巧 第 1章 命令行操作及常用命令使用. 1.1 命令行操作 1.1.1 Shell简介 1.1.2 Shell控制台使用方法 1.2 常用命令使用 1.2.1 登录和退出Linux系统 1.2.2 文件和目录操作命令 1.2.3 用户及用户组管理命令 . 1.2.4 进程及任务管理命令 1.2.5 磁盘及文件系统管理命令 1.2.6 软件安装命令 第 2章 文件查看/编辑方法介绍 2.1 cat 命令介绍. 2.2 vi 命令介绍 2.2.1 vi的进入与退出 2.2.2 vi中显示行号 2.2.3 光标移动操作 2.2.4 文本插入操作 2.2.5 文本修改操作 2.2.6 文本搜索与替换操作 2.3 head 及tail 命令介绍. 第 3章 网络配置及操作. 3.1 网络配置命令 3.1.1 ifconfig . 3.1.2 route 3.2 网络操作命令 3.2.1 netstat 3.2.2 nslookup . 。 。 。

2013-01-14

新编window32 API大全 win32编程

作为Microsoft 32位平台的应用程序编程接口,Win32 API是从事Windows应用程序开发所必备的。本书首先对Win32 API函数做完整的概述;然后收录五大类函数:窗口管理、图形设备接口、系统服务、国际特性以及网络服务;在附录部分,讲解如何在Visual Basic和Delphi中对其调用。 本书是从事Windows应用程序开发的软件工程师的必备参考手册。 Win32 API作为 Microsoft 32位平台(包括:Windows 9x,Windows NT3.1/4.0/5.0,WindowsCE)的应用程序编程接口,它是构筑所有32位Windows平台的基石,所有在Windows平台上运行的应用程序都可以调用这些函数。 从事Windows应用程序开发,离不开对Win32 API函数的调用。只有充分理解和利用API函数,才能深入到Windows的内部,充分挖掘系统提供的强大功能和灵活性。 近年来,随着Microsoft 32位平台的版本升级, Win32 API函数的构成、功能与调用方式都有很大的发展变化,然而,国内很少有相关的新版资料出版。为了满足广大开发人员的迫切需求,我们经过认真收集、整理素材,组织编写了这本与各种Microsoft 32位平台最新版本同步的Win32 API参考手册。 全书收录了五大类函数:窗口管理、图形设备接口、系统服务、国际特性以及网络服务。所有函数均附有功能说明、参数说明、返回值说明、备注以及引用说明。另外,在本书的第一章,我们对WiN32 API函数作了完整的概述;在附录部分,讲解了如何在Visual Basic和Delphi中对其调用。 由于篇幅较大,涉及技术内容广泛,加之时间仓促,书中难免存在不少错误或疏漏,希望广大读者给与批评指正。 在Windows程序设计领域处于发展初期时,Windows程序员可使用的编程工具唯有API函数。这些函数在程序员手中犹如"积木块"一样,可搭建出各种界面丰富、功能灵活的应用程序。不过,由于这些函数结构复杂,所以往往难以理解,而且容易误用。 随着软件技术的不断发展,在Windows平台上出现了很多优秀的可视化编程环境,程序员可以采用"所见即所得"的编程方式来开发具有精美用户界面和功能的应用程序。这些可视化编程环境操作简便、界面友好,比如:Visual C++,Delphi,Visual Basic等等。在这些工具中提供了大量的类库和各种控件,它们替代了API的神秘功能。事实上,这些类库和控件都是构筑在Windows API的基础上的,但它们使用方便,加速了Windows应用程序的开发,所以受到程序员的普遍采用。有了这些类库和控件,程序员们便可以把主要精力放在整体功能的设计上,而不必过于关注具体细节。不过,这也导致了非常多的程序员在类库面前"固步自封",对下层API函数的强大功能一无所知。 实际上。程序员要想开发出更灵活、更实用、更具效率的应用程序,必然要涉及到直接使用API函数。虽然类库和控件使应用程序的开发容易得多,但它们只提供Microsoft Windows的一般功能,对于一些比较复杂和特殊的功能来说,单使用类库和控件是难以实现的,必须直接使用API函数来编写。API函数是构筑整个Windows框架的基石,只有充分理解和利用API函数,才能深入到Windows的内部,充分发挥各种32位平台的强大功能和灵活性,才能成功地扩展和突破类库、控件和可视开发环境的限制。 Win32 API即为Microsoft 32位平台的应用程序编程接口(Application Programming Interface)。所有在Win32平台上运行的应用程序都可以调用这些函数。 使用Win32 API,应用程序可以充分挖掘Windows的32位操作系统的潜力。 Mircrosoft的所有32位平台都支持统一的API,包括函数、结构、消息、宏及接口。使用 Win32 API不但可以开发出在各种平台上都能成功运行的应用程序,而且也可以充分利用每个平台特有的功能和属性。 在具体编程时,程序实现方式的差异依赖于相应平台的底层功能的不同。最显著的差异是某些函数只能在更强大的平台上实现其功能。例如,安全函数只能在Windows NT操作系统下使用。另外一些主要差别就是系统限制,比如值的范围约束,或函数可管理的项目个数等等。 标准Win32 API函数可以分为以下几类: 窗口管理 窗口通用控制 Shell特性 图形设备接口 系统服务 国际特性 网络服务 在下面各节中,我们分别介绍这7种类型的API函数。 窗口管理函数向应用程序提供了一些创建和管理用户界面的方法。你可以使用窗口管理函数创建和使用窗口来显示输出、提示用户进行输入以及完成其他一些与用户进行交互所需的工作。大多数应用程序都至少要创建一个窗口。 应用程序通过创建窗口类及相应的窗口过程来定义它们所用窗日的外观和行为。窗口类可标识窗口的缺省属性,比如窗口是否接受双击鼠标按钮的操作。或是否带有菜单。窗口过程中包含的代码用于定义窗口的行为,完成所需的任务,以及处理用户的输入。 应用程序可使用GDI函数来产生窗口的输出。由于所有的窗口都共享显示屏幕,所以应用程序不接受对整个屏幕的访问。系统管理所有的输出内容,并对它们进行排列和剪裁,使其能够适合相应的窗口。应用程序可以在处理输入消息时,或为了响应系统的需求而在窗口中绘图。当窗口的大小或位置发生变化时,系统通常会向应用程序发送一个消息,要求它对该窗口中原来未显露的区域进行重画。 应用程序以消息的形式接受鼠标和键盘输入。系统将鼠标移动、鼠标按钮操作转换为输入消息,并将这些消息放入该应用程序的消息队列中。系统为每个应用程序都自动提供一个消息队列。应用程序使用消息函数从消息队列中获取消息,并将它们分派给适当的窗口过程进行处理。 应用程序可以直接处理鼠标和键盘输人,也可以让系统使用菜单和键盘加速健将这些低级输入转换成命令消息。你可以使用菜单向用户展现一个命令列表。系统对所有菜单操作所需的动作进行管理,包括让用户选择一个命令,然后再向窗日过程发送一个标识该选择的消息。键盘加速键是应用程序定义的按键操作组合,系统可将其转换为消息。加速键通常对应于菜单中的某个命令,并与该命令产生相同的消息。 应用程序通过在对话框中向用户提示附加信息来响应命令消息。对话框实际是一个临时的窗口,用于显示信息或提示输入。一个对话框通常由一些表示按钮和方框的控制组成,可供用户进行选择或输入信息。对话框中可包括用于输入正文、滚动正文、从列表中选择列表项等操作的控制。对话框管理和处理来自这些控制的输入,使应用程序可使用这些信息,来完成所要求的命令操作。 通过使用"资源"可以共享很多有用的数据,比如位图、图标、字体和字符串等,只需将这些数据作为"资源"添加到应用程序或DLL文件中。应用程序通过使用资源函数,找到资源并将它们加载到内存来获取这些数据。 窗口管理函数还提供了其他一些与窗口有关的特性,比如插入标记(Caret)、剪贴板、光标、挂钩(Hook)、图标以及菜单等函数。 窗口管理函数包括以下几类: 易用特性函数(Accessibility Features) Win32 API提供的一系列易用特性使得有残疾的人也能很容易的使用计算机,Win32 API提供了一些函数和结构来控制这些特性。 按钮函数(Button) Microsoft提供了对话框和控制来支持应用程序与用户之间的交互通讯。按钮就是一种控制,用户可通过点击按钮来向应用程序提供输入信息。 插入标记函数(Caret) 一个插入标记是位于窗口绘图区中的一个闪动的直线、方块或图标。插入标记通常用于指示文本或图形将插入的位置。Win32应用程序可以使用插入标记函数来创建一个插入标记,改变它的闪动频率,显示、隐藏插入标记,或重新设置插入标记的位置。 组合框函数(Combo Box) 组合框是由COMBOBOX类定义的一种控制,综合了列表框和编辑控制的很多功能。使用组合框函数可以在组合框中显示或获取不同类型的数据。 通用对话框函数(Common Dialog Box) 通用对话框是在通用对话框库中定义的,其功能是用来完成一些通用的任务,比如打开文件、打印文档等。通用对话框为用户提供了一个统一的用户界面,使用户在不同的应用程序中完成通用任务时的操作都相同,不必每次都学习不同的操作过程。 光标函数(Cursor) 光标是显示屏幕上的一个小图形,其所在的位置由指点设备比如鼠标、光笔或轨迹球等控制。当用户移动鼠标时,系统就会随之移动光标的位置。应用程序使用Win32光标函数可以创建、加载、显示、移动、限制和删除光标。 对话框函数(Dialog Box) 对话框是应用程序创建的一个临时窗口,用于获取用户的输入。应用程序通常使用对话框向用户显示一些命令提示信息。一个对话框一般由一个或多个控制(子窗口)组成,这些控制可用来输入文本、选择选项或执行命令动作。 编辑控制函数(Edit Control) 编辑控制是一个矩形窗口,通常用在对话框中,用户可通过键盘向编辑控制中输入和编辑文本。系统对Unicode文本(字符采用双字节编码)和ANSI(字符采用单字节编码)文本都支持。 图标函数(Icon) 图标是一个图片,由一个位图图像组成,并和一个掩码组合构成该图片的透明区域。当提到图标时,可以是下列两种情况: 1)单个图标图像。资源类型为RT_ICON。 2)一组图标图像,系统或应用程序可从中选择。资源类型为RT_GROUP_JCON。 应用程序使用图标函数可以创建、显示、删除和复制图标。 键盘加速健函数(Keyboard Accelerator) 键盘加速键(或简称为加速键)是一个按键操作或多个按键操作的组合,可向应用程序发送WM_COMMAND或WM_SYSCOMMAND消息。 使用键盘加速键函数可以拷贝、创建、加载或删除加速键表,* 图标是一个图片,由一个位图图像组成,并和一个掩码组合构成该图片的透明区域。当提到图标时,可以是下列两种情况: 1)单个图标图像。资源类型为RT_ICON。 2)一组图标图像,系统或应用程序可从中选择。资源类型为RT_GROUP_JCON。 应用程序使用图标函数可以创建、显示、删除和复制图标。 键盘加速健函数(Keyboard Accelerator) 键盘加速键(或简称为加速键)是一个按键操作或多个按键操作的组合,可向应用程序发送WM_COMMAND或WM_SYSCOMMAND消息。 使用键盘加速键函数可以拷贝、创建、加载或删除加速键表,还可以将加速键消息转换为命令消息。 键盘输入函数(Keyboard Input) 键盘输入函数提供了接受和处理键盘输入的方法。 列表框函数(List Box) Microsoft的Win32 API提供了对话框和控制来支持应用程序与用户之间的交互通讯。列表框是一个控制窗口,其中包含一系列选项,可供用户进行选择。使用列表框函数可以在列表框中显示或获取不同类型的数据。 菜单函数(Menu) 菜单函数向Win32应用程序提供了一系列创建、管理和使用菜单的方法,包括对菜单条、菜单项。 于菜单等的处理。 消息和消息队列函数(Message and Message Queue) 消息和消息队列函数向Win32应用程序提供了一系列使用消息和消息队列的方法,包括对消息进行 传播、发送、获取、转换等操作。 鼠标输入函数(Mouse Input) 鼠标输入函数提供了接受和处理鼠标输入的方法。 多文档接口函数(Multiple Document Interface) 多文档接口(MDI)是应用程序定义用户界面的一种规范,在这种界面下,用户可以同时使用多个文档。 资源函数(Resource) 一个资源是一些二进制数据,可以添加到Win32应用程序的可执行文件中。资源既可以是标准的,也可以是自己定义的。标准资源中的数据包括图标、光标、菜单、对话框、位图、增强元文件、字体、加速键表、消息表入口、字符串表入口或版本。应用程序定义的资源(也称为定制的资源)可以包含特 殊应用程序所需的任何数据。 使用资源函数可以添加、删除、拷贝、替换或加载各种资源数据。 滚动条函数(Scroll Bar) 在Win32应用程序的窗口中,可以显示比该窗口的显示区更大的数据对象,比如文档或位图。当窗口提供了滚动条时,用户就可以通过拖动滚动条来浏览该数据对象中位于显示区外面的部分。 滚动条包括水平滚动条和垂直滚动条。使用滚动条函数可以创建和管理这两种滚动条。 窗口函数(Window) 在图形化的Win32应用程序中,窗口是屏幕上的一个矩形区域,应用程序可在该区域中显示输出结果,并接受用户输入。因此,一个图形化的Win32应用程序的首要任务之一就是创建一个窗口。 一个窗口与其他窗口共享显示屏幕,也包括其他应用程序所创建的窗口。一次只能有一个窗口接受用户的输入。用户可以使用鼠标、键盘或其他输人设备与该窗口及拥有该窗口的应用程序进行交互。使用窗口函数可以创建和管理窗口。 窗口类函数(Window Class) 一个窗口类是一个属性的集合,系统将该属性集合用作创建窗口的模板。每个窗口都是某个窗口类的一个成员。使闲置或删除窗口属性。 ------------------------------------------------------------ 函数功能:该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。 函数原型:LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam); 参数: hWnd:其窗口程序将接收消息的窗口的句柄。如果此参数为HWND_BROADCAST,则消息将被发送到系统中所有顶层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口,但消息不被发送到子窗口。 Msg:指定被发送的消息。 wParam:指定附加的消息指定信息。 IParam:指定附加的消息指定信息。 返回值:返回值指定消息处理的结果,依赖于所发送的消息。 备注:需要用HWND_BROADCAST通信的应用程序应当使用函数RegisterWindowMessage来为应用程序间的通信取得一个唯一的消息。 如果指定的窗口是由调用线程创建的,则窗口程序立即作为子程序调用。如果指定的窗口是由不同线程创建的,则系统切换到该线程并调用恰当的窗口程序。线程间的消息只有在线程执行消息检索代码时才被处理。发送线程被阻塞直到接收线程处理完消息为止。 Windows CE:Windows CE不支持Windows桌面平台支持的所有消息。使用SendMesssge之前,要检查发送的消息是否被支持。 速查:Windows NT:3.1及以上版本:Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;输入库:user32.lib;Unicode:在Windows NT环境下以Unicode和ANSI方式实现。 函数功能:该函数从与应用事例相联系的可执行文件(.EXE)中加载指定的菜单资源。 函数原型:HMENU LoadMenu(HINSTANCE hlnstance,LPCTSTR lpMenuName); 参数: hlnstance:含有被加载菜单资源的事例模块的句柄。 LpMenuName:指向含有菜单资源名的以空结束的字符串的指针。同时,此参数可由低位字上的资源标识符和高位字上的零组成。要创建此值,用MAKEINTRESOURCE宏。 返回值:如果函数调用成功,返回值是菜单资源句柄;如果函数调用失败,返回值是NULL。若想获得更多的错误信息,请调用GetLastError函数。 备注:关闭应用程序之前,用函数DestroyMenu来销毁菜单并释放加载菜单占用的内存。Windows CE 1.0不支持层叠式菜单。Windows CE 2.0及更高版本支持层叠式菜单。 速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;输入库:user32.lib;Unicode:在Windows NT环境下,以Unicode和ANSI方式实现。

2013-01-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除