VB新手常见问题解答

_____谜一样

_____谜一样

2016-02-19 13:15

今天图老师小编给大家展示的是VB新手常见问题解答,精心挑选的内容希望大家多多支持、多多分享,喜欢就赶紧get哦!
SP2、SP3、企业版有何区别
  
  问请问VB中的SP2、SP3、企业版这三种,各代表什么含义?
  
  答SP是ServicePack的缩写。微软每推出一个软件后,都会不定期地推出一些补丁程序,依时间先后称为SP1、SP2等等。后一个SP版本包括前一个版本的全部内容,所以如果你安装了SP3就用不着安装SP2了。SP可以从微软的站点免费下载。VB5.0的SP下载地址:http://msdn.microsoft.com/vstudio/sp/vs97/。VB6.0的SP下载地址:http://msdn.microsoft.com/vstudio/sp/default.asp。在ServicePack的Readme文件中介绍了该ServicePack修改了哪些错误。VB有三个主要版本:学习版、专业版、企业版。企业版是功能最全的版本,当然也是最贵的版本。
  
  
  API的意义是什么
  
  
  问编程中经常碰到API。请问API的意义是什么?如何知道编程中经常用到的窗口句柄、窗口类名等?
  
  答API是ApplicationProgrammingInterface(应用编程接口)的缩写,也就是应用程序调用系统功能的接口。WindowsAPI主要包括由Windows系统定义的函数、消息及与之相关的数据类型。我们使用各种开发工具归根结底都是和API打交道。但是API本身比较难掌握,所以VisualBasic提供了可视的面向对象的控件,使初学者即使不太了解API,也可以编写Windows程序。但是VisualBasic提供的控件毕竟是有限的,不可能包括API的所有方面,所以一些复杂的功能仍然需要调用API来实现。
  
  
  API定义中的&H是什么含义
  
  
  问现在我看到一些用API函数做的例程,其中有一个语句:PUBLICCONSTLVM_FIRST=&H1000,该语句中&H1000代表的是什么含义?
  
  答&H是16进制的表示,比如&H10等于十进制的16。
  
  
  为何总提示“变量未定义”
  
  
  问下面是一个关闭Windows的小程序:
  
  OptionExplicit
  
  PrivateDeclareFunctionExitWindowsExLib“user32”(ByValuFlagsAsLong,ByValdwReservedAsLong)AsLong
  
  PrivateSubForm_Load()
  
  ExitWindowsExEWX_FORCEOrEWX_LogoFFOrEWX_SHUTDOWN,0
  
  EndSub
  
  但编译的时候,总是提示:EWX_FORCE变量未定义,但EWX_FORCE是一个参数。这是为何?
  
  答EWX_FORCE和其他几个参数都是WindowsAPI中定义的常数。你使用了OptionExplicit(这是个好习惯,便于发现错误),所以VB发现未定义的符号都会进行提示,这有助于发现拼写错误和遗漏参数定义。你应该从VB的Win32api.txt中复制这几个参数的定义。
  
  
  如何保存图片
  
  
  问我在VB的主窗体要装入一幅事先选好的图片,程序运行后我可以在图片上进行修改并保存它,以备以后调用。请问怎样办?
  
  答你可以把Form或PictureBox的AutoDraw属性设为True,进行修改后使用VB的SavePicture语句进行存盘。如:
  
  SavePicturePicture1.Picture,“c:est.bmp”
  
  这种存盘的文件为.bmp文件,颜色数与当前屏幕的色彩数相同。如果你的存盘要求很高,希望控制存盘格式,只能借助于其他控件,比如ImageMan(http://www.data-tech.com下载)、LeadTools(http://www.leadtools.com下载)等等。
  
  
  “实时错误9下标越界”错误
  
  
  问我在为一数组赋值时出现如下错误:“实时错误9——下标越界”。出错的代码如下:
  
  Diminputdata()AsSingle
  
  inputdata(0)=Text2(0).Text/Text2(1).Text注释:入学率
  
  请问为何会出现这种错误?
  
  答VB在使用数组前必须指定数组的大小。一种办法是在定义时确定大小,如:DimInputData(10)AsSingle,另一种是采用动态数组。对于你的程序,数组声明部分可以不用修改,而在出错语句前加一句:ReDimInputData(10)AsSingle。
  
  
  如何打开光盘上的数据库
  
  
  问我在编一个VB程序,当程序刻到光盘以后,不能使用,经过检查发现是因为.mdb文件为只读,程序出错:“该数据库文件已经被另外的一个用户以独占的方式打开,您不能访问”。请问各位高手怎么办?可是我用Access却可以阅读该数据库(只读)。
  
  答如果你用Data控件使用该数据库,将Data控件的ReadOnly属性设为True,将Exclusive属性设为True。如果ReadOnly属性为False,则就出现你所见到错误信息。如果不将Exclusive属性设为True,将出现Can注释:tlockfile的错误信息。如果你是使用OpenRecordset语句打开数据库,Exclusive属性对应着dbDenyWrite和dbDenyRead参数。
  
  
  怎样避免当前窗口被关闭
  
  
  问在按下右上角的关闭键后,怎样避免当前窗口被关闭?
  
  答在按下关闭键后,会发生Form_Unload和Form_QueryUnload事件。这两个事件都有个Cancel参数,如果在事件处理过程中将其设为True就可以避免窗口被关闭。对于你的问题,Form_QueryUnload事件可能更好些,因为它有一个UnloadMode参数可以区分关闭窗口的指令是用户做出的,还是系统做出的,或者是本程序代码产生的。
  
  
  DLL的编程格式问题
  
  
  问我是第一次编写ActiveXDLL程序,在DLL中,我只在类模块中写了一个函数CARD,编译成DLL后,在另外一个程序中调用,在模块中声明:
  
  PublicDeclareFunctioncard_configLib"c:estcard.dll"(ByValaddressAsInteger,ByValintermitAsInteger)
  
  在一个按钮中写如下代码:
  
  c=card_config(12,12)
  
  运行后出现错误:编译ActivexDLL后,调用时出现错误:“实时错误453,找不到DLL入口点”望指教。如有可能:请详细告之DLL的编程格式。
  
  答Declare语句只能用来调用标准DLL,而不能用于调用ActiveXDLL,这是你程序出错的原因。VB无法生成标准DLL,只能生成ActiveXDLL。要调用ActiveXDLL,一般通过CreateObject语句调用,或在集成环境中选择菜单“工程/引用”,在对话框中选择你要调用的ActiveXDLL。这样你就可以在程序中使用ActiveXDLL中定义的对象或函数。
  
  
  怎样启动其他应用程序
  
  
  问怎样在VB中启动其他Windows应用程序,例如记事本?
  
  答你可以使用VB的Shell函数调用其他应用程序。如:
  
  Shell“Notepad.exec:autoexec.bat”
  
  
  如何打印MSChart
  
  
  问如何打印MSChart控件中的内容?
  
  答MSChart本身没有打印功能,所以必须先用EditCopy将图像放在剪贴板中,然后再打印,如:
  
  MSChart1.EditCopy
  
  Printer.Print″″
  
  Printer.PaintPictureClipboard.GetData(),0,0
  
  Printer.EndDoc
  
  
  “can′tfinddllentrypoint”是指什么
  
  
  问出现以下错误信息是什么意思?“run-timeerror注释:453注释:can注释:tfinddllentrypointopenprocessinkernel32”,(我有一个定义PrivateDeclareFunctionopenprocessLib“kernel32"(ByValdwdesireaccessAsLong,ByValbInherithandleAsLong,ByValdwprocessIdAsLong)AsLong)
  
  答把openprocess改为OpenProcess。因为在Win32下,DLL中的函数名是区分大小写的。在kernel32中只有OpenProcess函数,没有openprocess函数。
  
  
  “对象不支持该属性或方法”错误
  
  
  问为什么执行Data1.Recordset.FindFirst“PubID=”&DBCombo1.BoundText时出现“对象不支持该属性或方法”错误?
  
  答这是因为FindFirst、FindNext、FindLast等方法不支持Table类的记录集,但可以使用Seek方法进行查找工作。但你必须对Pubid字段建立索引。如果想使用FindFirst方法,请修改Data1的RecordsetType属性为Dynaset。->

展开更多 50%)
分享

猜你喜欢

VB新手常见问题解答

编程语言 网络编程
VB新手常见问题解答

VB常见问题解答(1)

编程语言 网络编程
VB常见问题解答(1)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Oracle 常见问题解答

Web开发
Oracle 常见问题解答

美图看看新手使用常见问题解答

电脑网络
美图看看新手使用常见问题解答

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

《影之刃》常见问题解答

手机游戏 IOS
《影之刃》常见问题解答

Flash常见问题解答集锦

flash教程
Flash常见问题解答集锦

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

More Effective C++:理解new和delete

More Effective C++:理解new和delete

国家计算机二级考试程序修改与设计(3)

国家计算机二级考试程序修改与设计(3)
下拉加载更多内容 ↓