欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    windows程序设计 (2).ppt

    • 资源ID:6523741       资源大小:233.99KB        全文页数:26页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    windows程序设计 (2).ppt

    Windows程序设计基础,主要内容,Windows编程基础知识,Win32程序运行原理,用实例剖析Windows高级特性,参考书:Windows程序设计(第二版)人民邮电出版社 王艳平 张铮 编著,第一章windows程序设计基础知识,1.1 必备知识,Windows的操作系统:Windows95 Windows98 Windows Me Windows2000 Windows XP Windows2003(32)Vista Win 7(64),开发工具VB、Visual FoxPro、VC+、Delphi、C#、VC+.NET。TC是16位DOS程序编译器,Win32 API(Application Programming Interface),Win32 API可认为是一个程序库,提供各式各样的与windows系统服务有关的函数。Win32 API是最底层的服务。调用windows的各种服务。通常所说的sdk编程就是直接调用API函数进行编程。Win32 API是指编制32位应用程序时用的一组函数、结构、宏定义。在win32的环境下,任何语言都是建立在Win32 API基础上的。Visual FoxPro、VB等软件API隐藏的较深。,大多数API位于三个核心DLL中:kernel32.dll、user32.dll、GDI32.dll,采用其开发windows应用程序过于繁琐。,API&MFC,1.KERNEL 在Win32中库名为 KERNEL32.DLL,主要用于产生与操作系统之间的关联:程序加载 上下文选择.文件输入输出.内存管理.例如:GlobalMemoryStatus 函数就包括当前物理内存及虚拟内存的使用信息。,2.USER 这个类库在Win32中名叫 USER32.DLL。它允许管理全部的用户接口,比如:窗口 菜单 对话框 图标等.,例如:DrawIcon 函数将在指定的设备关联上“画”出图标或者鼠标。,3.GDI(Graphical Device Interface)它在Win32中的库名为:GDI32.dll,它是图形输出库。使用GDI Windows“画”出窗口、菜单以及对话框等:它能创建图形输出.它也能保存图形文件.例如:CreateBitmap 函数就能通过指定的长、宽、颜色创建一个位图。,API&MFC,API:一套用来控制Windows的各个部件(从桌面的外观到为一个新进程分配的内存)的外观和行为的一套预先定义的Windows函数.MFC:是对WindowsAPI的封装,是Win API与C+的结合,MFC就是挂在它之上的一个辅助软件开发包 MFC 主包含文件为“Afxwin.h”。API 主包含文件为windows.h,(1)包含要调用函数的声明文件 windows.h 包含其他头文件 windef.h 基本类型定义 winnt.h 支持Unicode的类型定义 winbase.h 内核函数 winuser.h 用户接口函数 wingdi.h 图形设备接口函数 winsock.h 网络编程函数,1.2 API函数的调用方法,1.C+调用过程,(2)连接到指定的库文件 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib 显式设置:#pragma comment(lib,”WS2_32.lib”)(3)在API函数前加“:”表示这是一个全局函数,以与 C+类的成员函数区分。,API函数的调用方法,#include 就可以使用API函数,调用API例子(C+),#include stdafx.h/这是VC自动添加的头文件,没有什么用途#include/包含MessageBox函数声明的头文件int main(int argc,char*argv)/调用API函数MessageBoxint nSelect=:MessageBox(NULL,Hello,Windows XP,Greetings,MB_OKCANCEL);if(nSelect=IDOK)printf(用户选择了“确定”按钮 n);elseprintf(用户选择了“取消”按钮 n);return 0;,2.C#调用格式using System.Runtime.InteropServices;/引用此名称空间,简化后面的代码./使用DllImportAttribute特性来引入api函数,注意声明的是空方法,即方法体为空。DllImport(user32.dll)public static extern ReturnType FunctionName(type arg1,type arg2,.);/调用时与调用其他方法并无区别,1.VB不能直接调用Win API,要先声明然后再调用。2.声明 API 过程,比如声名SetWindowTextA 首先,在模块的声明部分对过程进行声明:Private Declare Function SetWindowText Lib user32 Alias SetWindowTextA(ByVal hwnd As Long,ByVal lpString As String)As Long 3.调用 API 过程 在声明了函数之后,调用它的方式与标准的 Visual Basic 函数相同。在下例中,Form Load 事件调用了上面声明的过程。Private Sub Form_Load()SetWindowText Form1.hWnd,Welcome to VB End Sub 在VB环境下,涉及到的所有integer(整型数),都是16位,调用API例子(VB),调用API例子(C#),读写INI文件。using System;using System.IO;using System.Text;using System.Runtime.InteropServices;namespace FileIO public class INIFileIO DllImport(kernel32)private static extern long WritePrivateProfileString(string section,string key,string val,string filePath);DllImport(kernel32)private static extern int GetPrivateProfileString(string section,string key,string def,StringBuilder retVal,int size,string filePath);,调用API例子(C#),public INIFileIO()public static void INIWriteValue(string section,string key,string val,string filePath)WritePrivateProfileString(section,key,val,filePath);public static string INIReadValue(string section,string key,string filePath)StringBuilder temp=new StringBuilder(255);int i=GetPrivateProfileString(section,key,temp,255,filePath);return temp.ToString();,回调函数,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。,某些API函数要求以callback作为你参数之一。如SetTimer,LineDDA,EnumObjects。,UINT_PTR SetTimer(HWND hWnd,/窗口句柄UINT_PTR nIDEvent,/定时器ID,多个定时器时,可以通过该ID判断是哪个定时器UINT uElapse,/时间间隔,单位为毫秒TIMERPROC lpTimerFunc/回调函数);,回调函数必须有关键词 CALLBACK 回调函数本身必须是全局函数或者静态函数,不可定义为某个特定的类的成员函数回调函数并不由开发者直接调用执行(只是使用系统接口API函数作为起点)回调函数通常作为参数传递给系统API,由该API来调用回调函数可能被系统API调用一次,也可能被循环调用多次,int_stdcallCompareInts(constbyte*velem1,constbyte*velem2)intelem1=*(int*)velem1;intelem2=*(int*)velem2;if(elem1elem2)return1;return0;,int_stdcallCompareStrings(constbyte*velem1,constbyte*velem2)constchar*elem1=(char*)velem1;constchar*elem2=(char*)velem2;returnstrcmp(elem1,elem2);,intmain(intargc,char*argv)inti;intarray=5432,4321,3210,2109,1098;coutBeforesortingintswithBubblesortn;for(i=0;i5;i+)coutarrayin;Bubblesort(byte*)array,5,sizeof(array0),constcharstr510=estella,danielle,crissy,bo,angie;coutBeforesortingstringswithQuicksortn;for(i=0;i5;i+)coutstrin;Quicksort(byte*)str,5,10,结 束,

    注意事项

    本文(windows程序设计 (2).ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开