社区
VB基础类
帖子详情
迷惑:以ByVal的形式将String str传给一个API,执行完毕后,str获得新值,请问str的值为什么能改变呢?
flying_fox0
2003-08-28 12:12:34
迷惑:以ByVal的形式将String str传给一个API,执行完毕后,str获得新值,请问str的值为什么能改变呢?
...全文
60
8
打赏
收藏
迷惑:以ByVal的形式将String str传给一个API,执行完毕后,str获得新值,请问str的值为什么能改变呢?
迷惑:以ByVal的形式将String str传给一个API,执行完毕后,str获得新值,请问str的值为什么能改变呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Alicky
2003-08-28
打赏
举报
回复
你传的是地址,在API函数中,将该地址原来的值改变了。
高高兴兴的晶晶
2003-08-28
打赏
举报
回复
学习!
up
道素
2003-08-28
打赏
举报
回复
我好像说错了
ByVal是“按值”调用,参数传递时,不将指向DLL的指针传递给参数变量本身,而是将传递参数值的一份拷贝传递给DLL。比如传递字符串参数时,VB与DLL之间的接口支持两种类型的字符串,如未使用ByVal关键字,VB将指向DLL的函数指针传递给一个OLE2.0字符串(即BSTR数据类型),而Windows API函数往往不支持这种数据类型,导致错误。而使用ByVal关键字后VB将字符串转变换成C语言格式的“空终止”串,被API正确使用。
liul17
2003-08-28
打赏
举报
回复
楼上所说甚是
射天狼
2003-08-28
打赏
举报
回复
API不受你按什么方式(地址,传值)的影响.
在VB中自定义函数可以.
飘零风
2003-08-28
打赏
举报
回复
是否改变,并不是由你调用的时候怎么写(ByVal or ByRef)来决定的,而是写API的时候决定的。如果API函数本身就是写成ByRef方式,即使你在声明的时候使用ByVal,也是不起作用的。
道素
2003-08-28
打赏
举报
回复
在调用api时,对于字符串类型的你必须以byval类型传递
就相当于传递地址,因为VB字符串变量其实是SAFEARRAY
TechnoFantasy
2003-08-28
打赏
举报
回复
VB中的字符串以C的眼光来看是指向指针的指针,所以Byval传递过去的实际是真实字符串内容所在的地址的指针(如果是ByRef的话传递的就是指向这个指针的指针)。直到指针当然就能修改其指向的地址的内容了。
数据库访问及数据转中文大写等工具
DB类:数据库访问类 属性: Conn
Str
ing
——连接字符串(如:server=.;uid=sa;pwd=;database=ufdata_001_2010) CMD
str
ing
——未使用 oleConn
Str
ing
——连接ACCESS数据库的字符串 方法: OpenConn——打开数据库(无参数) oleOpenConn——打开ACCESS数据库 NoreturnCmdPara(
Byval
Str
_cmdpara as
str
ing
) 传递Sql命令为参数,无返回
值
Sub PROnoreturn(
ByVal
Str
_proName As
Str
ing
, Optional
ByVal
Str
_para1 As
Str
ing
= "", Optional
ByVal
Str
_para2 As
Str
ing
= "", Optional
ByVal
Str
_para3 As
Str
ing
= "", Optional
ByVal
Str
_para4 As
Str
ing
= "", Optional
ByVal
Str
_para5 As
Str
ing
= "", Optional
ByVal
Str
_para6 As
Str
ing
= "")
执行
存储过程
Str
_proName,无返回
值
函数: Function ReturnDatablePara(
ByVal
Str
_cmdpara As
Str
ing
) as DataTable 传递Sql命令为参数,返回Datatable Function ReturnOneValuePara(
ByVal
Str
_cmdpara As
Str
ing
) As Object 传递Sql命令为参数,返回单一
值
Function ReturnDataReaderPara(
ByVal
Str
_cmdpara As
Str
ing
) As SQlClient.SqlDataReader 传递Sql命令为参数,返回DATAREADER Function ReturnXMLPara(
ByVal
Str
_cmdpara As
Str
ing
) As Xml.XmlReader 传递Sql命令为参数,返回XML Function PROReturnDataReader(
ByVal
Str
_proName As
Str
ing
, Optional
ByVal
Date_Begin As Date = #1/1/1900#, Optional
ByVal
Date_End As Date = #1/1/1900#, Optional
ByVal
Str
_SubcompanyCid As
Str
ing
= "", Optional
ByVal
Str
_Code As
Str
ing
= "", Optional
ByVal
Str
_CompanyCid As
Str
ing
= "", Optional
ByVal
Str
_ItemCid As
Str
ing
= "") As SqlClient.SqlDataReader
执行
存储过程
Str
_proName,返回DATAREADER Function PROReturnDataTable(
ByVal
Str
_proName As
Str
ing
, Optional
ByVal
Date_Begin As Date = #1/1/1900#, Optional
ByVal
Date_End As Date = #1/1/1900#, Optional
ByVal
Str
_SubcompanyCid As
Str
ing
= "", Optional
ByVal
Str
_Code As
Str
ing
= "", Optional
ByVal
Str
_CompanyCid As
Str
ing
= "", Optional
ByVal
Str
_ItemCid As
Str
ing
= "") As DataTable
执行
存储过程
Str
_proName,返回DATATABLE 以ole开头的方法,用于访问ACCESS数据库 Tools类:工具 方法: 数字转中文大写 GetMonthDateMin:取月份最小日期,表示为:2018-01-01 00:00:00 GetMonthDateMax:取月份最大日期,表示为:2018-01-01 23:59:59 GetField:返回字符
值
内容,如果
值
为NULL,则返回为“” GetFieldNum:返回数
值
内容,如果
值
为NULL,则返回0 GetFieldNumEX:返回数
值
内容,如果
值
为NULL,则返回"" GetMacList:取本机的MAC地址列表 GetMaxDate:返回日期的最大时间
值
,如:2018-01-05,则返回为:2018-01-05 23:59:59 GetMinDate:返回日期的最小时间
值
GetPaperLists:返回指定打印机的纸张列表 GetPrinterLists:返回指定本机打印机列表 加密字符串:将指定的字串,按参数2和参数3计算后返回结果, 原码必须小于等 于20位,参数2只能是1-6,参数3只能是1-100 解密字符串:与加密字符串对应,返回解密后的结果
vb.net操作ini配置文件的模块
'用法: 首先 定义iniFileName="文件名" 不需要 加ini后缀 '这就是说,你可以赋
值
给iniFileName就可以写入记录,而且你可以随时写入不同的ini文件(不管这个文件是否已存在),通过修改这个公用变量。 '然后 DelInikey(
ByVal
SectionName As
Str
ing
,
ByVal
KeyWord As
Str
ing
) 清除键 'DelIniSec(
ByVal
SectionName As
Str
ing
)) 清除部 'SetIniN(
ByVal
SectionName As
Str
ing
,
ByVal
KeyWord As
Str
ing
,
ByVal
ValInt As integer) 写入数 'GetIniN(
ByVal
SectionName As
Str
ing
,
ByVal
KeyWord As
Str
ing
ByVal
DefValue As integer)读取数 'SetIniS (
ByVal
SectionName As
Str
ing
,
ByVal
KeyWord As
Str
ing
,
ByVal
Val
Str
As
Str
ing
) 写入字符 'GetIniS(
ByVal
SectionName As
Str
ing
,
ByVal
KeyWord As
Str
ing
,
ByVal
Val
Str
As
Str
ing
) 读取字符
通过系统
api
转化UTF-8编码的VB模块源码
通过系统
api
转化各种字符编码与UTF-8编码互相转换的VB模块源码
精彩编程与编程技巧-用VB开发应用程序如何使用INI文件...
精彩编程与编程技巧-用VB开发应用程序如何使用INI文件 ...
使用 ini文件 方法.txt
使用 ini 文件 方法 .txt
VB基础类
7,789
社区成员
197,583
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章