说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

VB怎样用VB在应用程序中调用API

HTML文档下载 WORD文档下载 PDF文档下载
VB怎样用VB在应用程序中调用API
作者:小锋
由于 API 过程存在于 Visual Basic 应用程序之外的文件中,在使用时必须指定过程的位置和调用参数。可以用 Declare 语句提供这类信息。在声明了 API 过程之后,可以把它当做 Visual Basic 自己的过程使用。 
  如果在 Visual Basic 中直接调用 API,那么 Visual Basic 环境下固有的安全机制将受到不利影响。这意味着在测试和调试程序时可能会遇到更多的系统故障。为了减少这种危险,在声明 API 过程、传递参数和指定类型的时候务必要小心。无论在什么情况下,一定要经常保存已经完成的工作。API 可以提供不同凡响的功能,但是要用好它也不容易。
  下例将演示如何调用 Windows API 中的过程。调用函数 SetWindowText 来改变一个窗体的标题栏。当然,在实际应用中,通常总是利用 Visual Basic 的 Caption 属性来改变标题栏。该示例的目的在于说明如何声明并调用过程。
声明 API 过程
  首先,在模块的声明部分对过程进行声明:
  Private Declare Function SetWindowText Lib "user32" _
  Alias "SetWindowTextA" (ByVal hwnd As Long, _
  ByVal lpString As String) As Long
  过程的精确语法定义可以用 API Viewer 应用程序找到,在 Win32api.txt 文件中也可以找到它。如果将 Declare 放在 Form 或者 Class 模块内,那么必须在它的前面加上 Private 关键字。同一个 API 过程在一个工程中只需声明一次;然后可以任意调用。


调用 API 过程
  在声明了函数之后,调用它的方式与标准的 Visual Basic 函数相同。在下例中,Form Load 事件调用了上面声明的过程。
  Private Sub Form_Load()
    SetWindowText Form1.hWnd, "Welcome to VB"
  End Sub
  在运行这段代码时,函数首先使用 hWnd 属性确定要修改标题栏的窗口(Form1.hWnd),然后将标题栏修改为“Welcome to VB”。
  需要牢记的是:Visual Basic 不能验证传递到 API 过程的值是否正确。如果传递了错误的值,那么过程将出错,并可能因此导致 Visual Basic 应用程序停止运行。这样就不得不重新加载和启动应用程序。在测试 API 过程时千万要小心,一定要经常地保存自己的工作。
  极少数 API 调用能够识别缺省的 Variant 数据类型。最好声明具体的变量类型并使用 Option Explicit,这样,API 的可靠性要高得多。
迪游信息科技CEO张晓雷:中日游戏面面观 百余款智能电视创意类应用参赛角逐 Top13 App新鲜出炉! 微信公众平台开发——如何保证access_token长期有效? 拼的就是速度!超快HTML5 2D渲染引擎Pixi.js 一周消息树:百度“涉黄”遭警告,网盘内容审核的四种方式 微信开发商现状调查:接口限制成主要困扰 行业需求多样是最大难点 小米:海外扩张需谨慎,信息安全或成最大掣肘 AMD FX系荣耀归来 或成大众新宠! 脑洞大开:《80天环游地球》同名游戏诞生记 2014微信开发者大会 最后30个参会名额! 林仕鼎创业产品“云校”正式上线:让教育个性化、多元化、均衡化 14岁少年开发者:伍兴云的智能家居“梦” Xcode 6 Beta 6发布闹乌龙,着重改进Swift语言 当API遇到云平台,开发者面临的新抉择! 《近匠》欧朋流量宝,工具类应用开发之道 《近匠》Bmob:免费无限制的公有云服务 MDCC应用征集最新动态:3D手游成热点、硬件种类丰富 闪迪Ultra II SSD:采用TLC闪存,最低价为79.99美元 现有技能不浪费!基于Titanium的跨平台游戏引擎Platino 跳过开发者,专注补Bug的iOS 8 Beta 6悄然发布 集群管理可以很简单,Google又放大招 应用内直接打车:Uber面向第三方开发者开放API 百万美元巨奖!英特尔启动感知计算挑战赛 IBM 2014技术峰会在京开幕! OpenGL 4.5规范标准发布,大大提升API性能! 更萌更贱:Flappy Bird开发者推虐心新作Swing Copters 学习的革命:AR增强现实遇到儿童应用 颠覆旧概念,IBM Bluemix开启云开发时代 专访企业QQ SaaS团队,谈企业级LNMP架构设计 《近匠》Coding:将软件开发搬到云上 小米与美视频游戏服务Ouya合作 进军国内客厅 错在哪里? 如何才能实现将ListView的一列拖到另外一列的位置? 在VC#中订阅消息要手工输入,为什么不做成VB一样?有简单方法吗? 请问网吧管理软件是如何使屏幕变暗,并显示自己的对话框,禁止其他操作的? 第一次用VB,请指教 多线程中如何申请一块存储空间 Code Guard是什么东东?在线等待,马上给分! 这个错误是什么原因啊? 请问怎样获得默认打印机名! 哪位大虾能给小弟一点有关汉诺塔问题的资料呀?! ShellExecute(this.Handle,null,"c:\\",null,null,1)问题再探 PB6.5如何实现选择文件路径对话匡?急!在线等待。 为什么下面的enum定义要有一个方括号? dot menu是什么意思? 请教大侠为什么(333)这句不执行 如何将olecontainer载入的word文件全部显示,而不只显示第一页? 简单问题! 高手帮忙!如何通过服务器来自动查找、替换客户端文件 为何timer控件失效? @这个字符在C#中有何具体意义?不解 如何将sql server的检查约束延迟到Commit时 ado连接sql库问题 为何无法ping自己的地址呢? 滚动条判断 单个窗口程序可以运行,但是几个窗体连在一起就不可以了,好像是多线程的问题,请教各位 关于DBgrid再次求救 今天我好失败——斑竹过两天删除吧,让我宣泄一下 哎呀!!各位何必拉帮结派呢!!!这样不好啦!!影响水园大团结啊~~~没有加入帮派的人就很难在水园呆下去啦。。猪猪。。只有和他们沦为 CreateBitmap 与 CreateCompatibleBitmap 弹出一个窗体但是又不抢占其他窗体得焦点,怎么办? 利用DW-MX制作ASP.NET程序教程! vc中 调用 VB dll 时参数类型如何确定? 谢谢! 如何才能得知当前路径?比如VB的App.Path? Conn.OpenSchema怎么得到字段的信息? 一个进程写在共享内存中的数据被另一个进程读出去后的问题 大家开心开心吧! 笑过后体会体会...... asp与数据库连接的问题?急,急!(在线等待) 大家是怎么查VCL类库的类及函数的? 在线程里有无限循环时,好象不跳出循环就无法终止线程,是吗 UNIX的线程有没有类似Windows线程的消息队列和消息机制? 哪位大虾知道如何在网页中快速刷新显示后台计算的数据? 请问有谁知道PrinterResolution怎么和打印机对象连在一起呀, 偶有一个惊人的发现! 对话框中的按钮我怎么让它继承我自己的类? 请问有谁知道PrinterResolution怎么和打印机对象连在一起呀, 装了腾讯的浏览器现在删了 可是用cterm点击里面的网址还会调用腾讯的浏览器 如何修改注册表 那个键值? 电子邮件的问题 怎样给为我解答问题的注册用户打分? 谁做过这样的新闻系统! 为什么RealPlayer放有些网站的流媒体文件时会出错? 请问什么地方有软件开发标准。如国标,国军标等。 某面粉厂有一容积是24立方米的长方体储粮池,它的长是高或宽的2倍,当贴着他的一最大的内侧面将面粉堆成一个最大的半圆锥时,这堆面粉的体积是多少? 氯化镁与氨水反应可逆吗? 新日电动车充电消耗大概几度电我买的是09年新日踏板的电动车,不要问我电池功率啥的,我的问题不需要你回答的多仔细,你们就说下一般新日踏板电动车充10小时大概会消耗几度电, 用matlab求解矩阵a的最大特征值及其特征向量,并将其特征向量归一化,对矩阵a进行一致性检验.速求a=(1 1 5 5 7 7 ;1 1 5 5 7 7 ;1/5 1/5 1 3 5 5;1/5 1/5 1/3 1 3 2;1/7 1/7 1/5 1/3 1 1/2;1/7 1/7 1/3 1/2 2 1) 氨水于氯化镁溶液反应的离子方程式 为什么磁体内部和外部磁场的方向是相反的? 送元二使安西的主要内容以及思想感情是什么?要概括些的! 磁场的方向就是磁体在磁场中受力的方向(参见补充说明)磁场的方向就是磁体在磁场中受力的方向,且磁感线的方向就是磁场的方向,那磁体的南极就不会与另一个磁体的南极所吸 如何形象的表示磁体周围空间各点的磁场方向和强弱 王维的送元二使安西是什么思想感情 氢氧化镁饱和水溶液中加入几滴氢氧化钠后,氢氧化镁的溶解度会发生什么变化?pH值会发生什么变化? 磁体内部的磁感线方向与磁场方向磁感线是虚拟的闭合曲线,那么在磁体内部的磁感线方向就是由S到N,此时如果小磁针放在通电螺线管内部,依然是小磁针的N指向螺线管的S.因为小磁针的北极 送元二使安西的感受是什么 要构成南极海洋生态系统 图中还缺少一种重要的生物成分是 如 组成生态系统中的非生物包括什么 绿色植物的蒸腾作用带走了植物体中百分之九十九以上的水分.你认为对当地气候会有什么影响? 若要组成一个完整的生态系统出图中所示生物外不可缺少的成分是 辅音字母+o结尾的部分名词有哪些 绿色植物的蒸腾作用帶走了植物体中大部分水分,你认为这对当地气候会有什么影响? 凝结的意思是什么 太阳能里的水是否可以吃 一定量的理想气体,经历某过程后,温度升高.则根据热力学定律可以断定:一定量的理想气体,经历某过程后,温度升高.则根据热力学定律可以断定:(1) 该理想气体系统在此过程中吸了热. ( 物态变化 凝固现象都有哪些例如:寒冷的冬天,湖水结成冰 除了这个还有那些?还有液化,汽化,凝华,升华这些现象 太阳能里面的水可以吃吗? 物理题中“理想气体”是怎样一个概念 氢氧化铁和硫酸先反应还是氢氧化镁和硫酸先反应 太阳能水可以喝吗? 为什么氟利昂制冷系统自动化程度比氨制冷系统更高? 氢氧化镁转化成氢氧化铁的方程式 磁体与磁场磁体的同极为什么互相排斥?不同级互相吸引? 理想气体 两端开口、粗细均匀的U型玻璃管开口向上竖直放置,两段水银柱中间封有一定质量的理想气体,其液面高度差如图所示,则如果向右管倒入少量水银后,图中的 将 (填“增大”“不变 氢氧化镁与氢氧化铁是否共价(已知氢氧化铝共价)对于金属氢氧化物有没有规律判断呢 怎样利用12v的直流电源,才能做一个加热器,要求温度230的恒温. 制冷系统中是不是只有氟利昂系统才用干燥器?氨系统不用吗? 氢氧化铁和氢氧化镁和铁在硫酸中反应有没有先后顺序/ 为什么冰箱移动了位置,不可以马上接电源?厂家说要等一个小时才可通电. 一道物理题目 关于理想气体的直玻璃管中部有一水银柱,两端封闭,管水平放置时,两端空气压强恰为76cmhg,水银柱在管正中,将管竖直放置,水银柱上部空气长恰为下部空气长的两倍,则管内水银 用平衡移动原理解释硫酸铁溶液与氢氧化镁反应生成氢氧化铁的原因 电冰箱运行过程中移动位置是否会损坏电机?美菱的电冰箱 运行了一段时间后发现地面有点倾斜导致冰箱不是很直 于是移动了一下位置 顺便再一边的脚下垫高了一些 请问会不会损坏冰箱啊 冷库采用氨制冷系统和氟里昂制冷系统哪个好? 一般的电动车充一次电后能走多少公里?能否介绍一款充电后能跑80公里以上的电动车呀? 新冰箱为什么要4个小时之后通电 一个圆柱形游泳池,直径是40米,深2米.(1)这个游泳池占地面积是多少?(2)在游泳池的一周围上护栏,护栏的长是多少米?(3)挖成这个游泳池,共需挖土多少立方米?(4)在池内的侧面和底面 理想气体物理题容器甲,乙用水平玻璃管连接,管内一段水银柱把气体分为左右两部分,甲乙两部分气体的厨师温度为27℃和37℃,现将两边气体的温度同时升高10℃,水银柱将怎么样变化?图是左甲 48伏的电动车充1小时要多少电 一个底面直径是40米,深2米的圆柱形游泳池,水深1.8米.先在储水多少立方米 对于氟利昂制冷系统,为什么需要设置干燥装置?若氟利昂制冷系统中发生“冰塞”,最有可能发生在管路中什么地方,为什么? 物质的三种形态和各种物态变化 一个圆柱形游泳池,直径是40m,池深2m,它能容水多少立方米?如果它的内壁和地面贴瓷一个圆柱形游泳池,直径是40m,池深2m,它能容水多少立方米?如果它的内壁和地面贴瓷的面积是多少平方米?要的 空调的制冷系统是怎么,氟利昂? 求“记承天寺夜游”的全文意思与字词解释 一个圆柱形游泳池,底面直径40米,深2米,这个游泳池的占地面积是多少?在池内的侧面和池底贴上瓷砖,需要多少面积的瓷砖 物理的物态变化中的六个概念的生活运用的例子,记住了概念可是总不会运用咋办 的加点词解释请注意,是处2上学期语文第17课 某面粉厂有一个容积是16立方米的长方体储粮池,它的长是宽或高的2倍,当贴着它一最大的内侧面将小麦堆成一最大的半圆锥体时,求这堆小麦的体积. 冰雪加盐后为什么融化会更快如题 记承天寺夜游生字词 某面粉厂有一容积是24立方米的长方形储粮池,它的长是宽和高的两倍,当贴着它的一最大的内侧面将面粉堆成一个最大的半圆锥(如图)时,这堆面粉的体积是多少?(答案清楚些,好理解些) 磁场的范围是不是说明了磁力的吸引力的范围? 记承天寺夜游的课下注释人教版.
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘