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

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 的可靠性要高得多。
Windows Blue开始按钮或将回归,你怎么看? Evernote推孵化器 不占股权 基于C++和Lua的移动游戏引擎Leadwerks 3发布 苹果秘密测试iOS 7与iPhone 6 或将6月发布 酷6 CTO 陆坚:请先信任你的程序员 从电信联手i-Free,看运营商渠道的加速整合 “Animory”开发者分享HTML5游戏开发经验 Appflood SDK:连接中国与海外App流量交互平台 Apache Subversion 1.7.9正式发布! 微软IE浏览器5大动向 加速吸引开发者 开源的简繁转换库OpenCC支持Node.js 继Opera之后,Adobe表示将支持Google Blink 提高大型软件项目质量的一些实用型技术分享 谷歌推出Mirror API,开发者可为Google Glass开发应用 无需999,也不要499,99美元Linux超级计算机带回家 微软反击AWS:推出EC2并大幅降价,“价格战”正酣 Operation InVersion:拯救了LinkedIn的大修项目 五步走战略——Avocado在最初几周内迅速扩大30倍 NoSQL产品测评:Cassandra、MongoDB、Couchbase和Aerospike 谷歌眼镜开箱评测:比想象更精致 Pinterest谈实战经验:如何在两年内实现零到数百亿的月访问 初创公司Instart Logic:专为电子出版商和网站站长解决“痛点” 未来即卖芯片又卖服务!Intel收购软件厂商Mashery 继MSN之后,微软又开始整合Skype与Lync服务 阿里将推AMOS智能机 斥资10亿鼓励开发App AMPLab开发重构的Hadoop版本Tachyon:吞吐量要比HDFS高300多倍 一名理科生的创业路 十大界面原型与布局工具 Google产品经理Kenneth Norton:如何与工程师共事 如何创建自适应系统来增强用户体验 Jolla下月展示首款Sailfish手机 将重点发展中国区 谁知道免费starcraft站网地址 一个程序开始端像dehpi会有一张图片以便缓冲,问这张图片怎么在程序中设制? 论坛全新开张,欢迎捧场 怎么将asf文件转换成avi文件 存储过程的问题? 如何在PictureBox控件中显示数据库中存储的图象 地址栏不见了!!! @@@@@@@@ TreeView 的问题 @@@@@@@@@@@@@@ 请教:哪里可以下载工具栏控件 怎样不用Delphi6的那个qtintf.dll啊? 对多语言问题的总结,集各位CSDN的智慧,让大家共享之 怎样将string类转化为其他类型,例如... 请问在哪里可以下在IIS 5.0 for Windows NT 4.0? 今天我才明白,我不是那么绝情,那个女孩竟然在我的心里留下了一份震撼 如何检测和修正ghost文件? Friecin(雪客)进来拿分(300分奉上,请高手做答关于MDI和DLL的问题) 想做程序员,考研如何选择 AnsiCompareStr和CompareStr? Behard进来拿分(300分奉上,请高手做答关于MDI和DLL的问题) CDatabase类里获取数据库名的函数是哪个啊? 请问RichEdit中如何在代码中修改选中字符的字体和颜色? 安装 WebSphere应用服务器问题 我发现我怀孕了,不知道是谁的!:( 中国电信 为什么我的打印机打印时会出现重影?? 我怎么把他们一一显示出来在listbox里?代码写出来! 请问BOOT扇区中各个数据的意义。。 有没有一次搞定具体时间的控件 tomcat配置简单的问题 问题:十六大代表需不需要办暂住证? 求教COOKIE的用法! JBuilder 7中如何安装一个Server ### 升级内核 ### 还有一个问题(树型列表) 哪里有Visual InetDev 6.0 下载? "分"到哪里去了? 有关于赋值的问题 技术的挑战,在线等待 有关csdn的一个小的问题? 显示模式的设置 怎么样删除在DATAGRID中选定的行? 如何自动滚动edit控件多行显示时的文字 win2000系统关闭后但不会自动断电源 寻找资料,请帮忙 难啊 统计数据 求:做得漂亮的学校主页 麻烦看一下下面的代码 C#和C++builder比各有什么优缺点?哪一个更灵活更稳定?C#和C++哪个好? bug管理工具有没有web方式的? cs文件中,如何获取confirm对话框的返回值? 2013年春天里的发现作文 请用 is,the,baby,she,of,the,family造句. 英语看图作文.一个人拿着鱼杆钓了一条小鱼,他想钓一条大鱼 英语翻译是我对你有强烈的感觉 还是 对你来说我有很强的感觉? at the moment用什么时态,还有just now 等等等等像这种词组用什么时态,希望一个一个写出来加上时态. 英语翻译不想再受到伤害 ,如果不爱我,女孩,请离我远点! but ___ ____ you have made some progress 填进步sorry 打错了 应该填 至少 take down造句帮忙造个句子 _____(thousand)of people lost their homes in the flood连词成句 sofa /is/on/the/comfortable/it/like/very/we/because/sitting(.) You shouldn't drive here.(同义句转换) You ______ _______ _______ ________ drive here. 用take care to do造句 用一般将来时 _(million) of people lost their lives in the war.怎样填? what do you have for breakfast这里为什么要用for 请老师们简单讲一下for的用法 这题为啥这样做?若不等式Ⅰx - 2Ⅰ+Ⅰx+3Ⅰ≤a有解,则a的取值范围是a≥5为什么呀那你给讲讲吧? 很多桔子,翻译它 He likes to have (apple and milk )for breakfast.就括号提问 We want to buy some potatoes.(一般疑问句) 这题为什么这样做?Isn't Mrs .webster here yet?No,(much to my surprise).为什么是much to my surprise?to my much surprise? 形容说话声音轻柔,语气温和叫什么言什么语 一篇关于你童年玩伴的作文200字,用描写的手法, 这道题为什么这样做?甲每分走50米乙每分走60米丙每分走70米,甲乙A地,丙B地同时相向出发丙遇到乙2分后又遇到甲.A,B两地()设该路全长xm,则有x/(60+70)+2=x/(50+70).解之得:x=3120(m). I drink a glass of milk in breakfast.有错的,找出并改正 What do you usually have for breakfast?和what areWhat do you usually have for breakfast?和What are you usually have for breakfast?急阿!具体点阿各位, 很多话叫( )言( )语 背后散布难听的话叫()言()语 说话声音轻柔、语气温和叫( )言( )语 I drink two_____(玻璃杯)of milk for breakfast What do you usually have for breakfast?可不可一把for改What do you usually have for breakfast?可不可一把for改改成in为什么要用forfor在这里指什么意思 在平行四边形ABCD中,AM垂直于BC,AN垂直于CD,求证AM:AB=MN:AC 连词成句(英语)i,milk,breakfast,drink,for 英语翻译哪个翻译更好?1.红色能在你犹豫不决的时候帮你拿定主意.2.当你犹豫不决的时候,红色能帮你拿定主意. a moment ago和just now有什么区别?a moment ago和just now都是刚才的意思,它们有什么区别? Erevy year many people l___ their lives in traffic a _____. let me know when you finish it如何翻译 just now 和 a moment ago 的区别 英语翻译填moment 还是 minute 为什么 形容数量多的成语和形容人很高兴的四字词语有哪些 在平行四边形ABCD中,AM垂直于BC,AN垂直于CD,若AB=13,BM=5,MC=9.则MN的长度为 I have got some beef inour fridge.(对some提问) 紫外线可以穿过普通的透明玻璃吗? a moment ago 与 just now有什么区别吗? 用英语怎样说“低调点”处事“低调点” 用英语怎么说? 紫外线能透过普通玻璃吗? 如图,在平行四边形ABCD中,DE垂直AB于点E,BM=MC=DC.求证:角EMC=3角BEM8月16号完成 人为什么儿活,又为什么儿死?人活着到底是为了什么阿?活的好累阿? 人活着的这一辈子到底是为了什么? a moment ago与just now的意思分别是什么? 人为什么儿活,又为什么儿死?人活着到底是为了什么阿?活的好累阿? 英语翻译诉求 Their breakfast is eggs,milk,apples and bananas.这句话有错吗?我个人认为is应为are是语法错误?不知正确吗? The typhoon in Taiwan caused many people___their homes.A.to lose B.lost C.to lost D.lose请说理由 形容人物品德高尚我不要成语 英语翻译公司系产供销一体化的食品连锁机构;拥有50余家蛋糕连锁店,现数个地市的分公司酝酿诞生,并在快速稳步发展之中,已成为河南省烘焙连锁的第一品牌.公司一直本着“做一家稳步发 The typhoon in Taiwan last month c( ) many people to lose their homes. 《2013的春天,我真( )》半命题作文600字左右 aswell,give up,makefun of,telliokes,makesb do she,be strict,about take care of 用以上短语造句吖~ Thousands of people in Taiwan had no houses to live in after the typhoon.had no houses to live in 划线提问 《2013年春天,我真_______》作文 ,求原创,在线等待——快~ hunt of什么意思?要是用这个短语造句怎么造? 请问什么品牌的钓线拉力强度比较好?钓到大鱼老断线跑鱼! 2013年的春天 初一作文!急 500字以上,谢谢大神500字以上,写景要描写详细,可以写一件以物喻人的温暖的事情更好 请高手给下面几个短语造句!OUT OF TOUCH ,OUT OF TUNE,OUT OF CIGARETTES,OUT OF BREATH,PUT OUT OF ACTION,GO OVER ,RUN OVER ,GET OVER ,TIDE OVER,PRESIDE OVER , Did the people suffer heavy _(lose)in the typhoon
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘