那是肯定的
char是字符
string 是字符串(而且是不定长的)
用string * 20这样可以定长
试试吧
char是字符
string 是字符串(而且是不定长的)
用string * 20这样可以定长
试试吧
解决方案 »
- Syntax error in Update statement
- 关于VB追加记录的问题
- 请大家帮解决一个有关水晶报表的错误
- 怎么样将VB中的数组生成Matlab中的数组?
- 大家来看看~~!
- 还有一个问题:如何调用DLL文件里的图标。。急!!!!
- 堂堂一大国就没人能解决这问题吗? 我晕哟 SQL Server 存储过程返回结果集
- 用不是vb自带的控件在转换成exe文件后为什么不能正确显示了
- 急!谁知道1978年10月10日是阴历多少?阴历1978年10。10是阳历多少!!!急!!!
- 不好意思,csdn把分给我吃了,我没有分了(气人啊)。帮我看看,vb中很奇怪的问题。
- 如何保存图标?
- 如何使VB6 Grid控件具有横竖滚动栏?急!
再用StrConv转
VB的String实际上是BSTR
是一个32Bit的指针
vb vc
string bstr or lpctstr
实现Byte数组到用户自定义数据结构的转换函数Copy_BA
Public Declare Function Copy_BA Lib "copymem.dll" (ByRef pByte As Byte, ByRef pData As myDATE, ByVal LONG cbSize)
实现用户自定义数据结构到Byte数组的转换函数Copy_AB
Public Declare Function Copy_AB Lib " copymem.dll " (ByRef pData As myDATE, ByRef pByte As Byte, ByVal LONG cbSize)
其中copymem.dll为VC编写的动态连接库MaxLenB = LenB(typeA)
其中LenB()为VB提供的函数,返回typeA在内存中的大小,包括元素之间的填塞。
该例中 MaxLenB = 8
ReDim bArray (MaxLenB) As Byte
实现用户自定义数据结构typeA到Byte数组bArray()的转换
Call Copy_BA (bArray, typeA, MaxLenB)
实现Byte数组bArray()到用户自定义数据结构typeA的转换
Call Copy_AB (typeA,bArray, MaxLenB) (四) 用VC编写内存拷贝函数
用以下两个函数编写成动态连接库:copymem.dll
void __stdcall copy_BA(LONG pMem, LONG pSource, LONG cbSize)
{
memcpy((void*)pMem, (void*)pSource, cbSize);
}
void __stdcall copy_AB(LONG pMem, LONG pSource, LONG cbSize)
{
memcpy((void*)pMem, (void*)pSource, cbSize);
}
用指针进行大批量数组数据的移动,看下面的程序,功能都是将数组的前一半数据移到后一半中: Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(ByVal dest As Long, ByVal source As Long, ByVal bytes As Long)
Private Declare Sub ZeroMemory Lib "kernel32" Alias "RtlZeroMemory" _
(ByVal dest As Long, ByVal numbytes As Long)
Private Declare Sub FillMemory Lib "kernel32" Alias "RtlFillMemory" _
(ByVal dest As Long, ByVal Length As Long, ByVal Fill As Byte) Private Sub ShitArrayByPtr(ab() As MyTpye)
Dim n As Long
n = CLng(UBound(ab) / 2)
Dim nLenth As Long
nLenth = Len(Value(1))
'DebugBreak
CopyMemory ByVal VarPtr(Value(1 + n)), _
ByVal VarPtr(Value(1)), n * nLenth
ZeroMemory ByVal VarPtr(Value(1)), n * nLenth
End Sub
失败是必然的
VB中的string只是指针,32bit
c的struct中包括字符