| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 337 人关注过本帖
标题:定长字符串在内存中的表示
只看楼主 加入收藏
邵帅
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:20
帖 子:174
专家分:505
注 册:2012-8-27
结帖率:78.26%
收藏
已结贴  问题点数:20 回复次数:6 
定长字符串在内存中的表示
想实现以下功能
有定长字符串 假设为 dim str1 as string*10,str2 as string*10
有内存区域首地址为add ,dim add as long
想把str1先存入内存,再用其他字符串取出
程序代码:
str1="0123456789"
str2=string(10,0)
copymemory byval add,byval varptr(str1),lenb(str1)
copymemory byval varptr(str2),byval add,lenb(str2)

但运行出错,代码有问题?
直接对字符串赋值内存:copymemory byval varptr(str2),byval varptr(str1),lenb(str1)结果也是错误的

[ 本帖最后由 邵帅 于 2013-12-12 10:01 编辑 ]
搜索更多相关主题的帖子: 字符串 color 
2013-12-12 09:53
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
收藏
得分:20 
strptr(str1)
2013-12-12 10:58
邵帅
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:20
帖 子:174
专家分:505
注 册:2012-8-27
收藏
得分:0 
回复 2楼 bczgvip
大哥你试了吗
copymemory byval strptr(str2),byval strptr(str1),lenb(str1)

没反应啊

Figure out what you like. Try to become the best in the world of it.
2013-12-12 11:08
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
收藏
得分:0 
程序代码:
Option Explicit

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

Private Sub Form_Load()
    Dim str1 As String
    Dim str2 As String
    str1 = "0123456789"
    str2 = String$(10, 0)
    CopyMemory ByVal StrPtr(str2), ByVal StrPtr(str1), LenB(str2)
    Debug.Print str2
End Sub
就怎么不喜定义类型?
2013-12-12 11:28
邵帅
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:20
帖 子:174
专家分:505
注 册:2012-8-27
收藏
得分:0 
回复 4楼 bczgvip
不定长字符串,用你写的没有问题,关键是定长字符串不行啊。

Figure out what you like. Try to become the best in the world of it.
2013-12-12 13:11
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
收藏
得分:0 
定长字符串,处理地址咱都没见过成功的。
2013-12-12 14:56
vhvihs0668
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-8-10
收藏
得分:0 
VB中定长数组和定长字符串,作为参数传递的时候,vb会强制把它们转成动态数组和动态字符串,参数只一个临时变量。这时候varptr或strptr获得的地址都是这个临时变量的地址。
2021-07-31 16:04
快速回复:定长字符串在内存中的表示
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018619 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved