易截截图软件、单文件、免安装、纯绿色、仅160KB

vb字符串在内存中的分布?

据说vb6中,字 符串以以UNICODE方式存储,所以
Private Type UDT
lngM1 As Long
lngM2 As Long
strM3 As String * 18
strM4 As String * 8
lngM5 As Long
End Type
Private Sub Command4_Click()
Dim tmp As UDT
With tmp
.lngM1 = 1
.lngM2 = 2
' .strM3 = "一二三四五六七八九十一二三四五六七八"
.strM3 = "一二三四五六七八九"
' .strM3 = "ABCD"
.strM4 = "测试ABC"
.lngM5 = 5
End With

Dim bytBuf() As Byte
ReDim bytBuf(Len(tmp) - 1)
CopyMemory bytBuf(0), tmp, Len(tmp)

Winsock1.SendData bytBuf
End Sub

vc6中定义相对应的结构体:
typedef struct{
long lM1;
long lM2;
char szM3[18];
char szM4[8];
long lM5;
}UDT;
//。。。。。。(省略部分代码)
char recvBuf[128];
UDT t;
while(true)
{
memset(&t,0,sizeof(t));
memset(recvBuf,0,sizeof(recvBuf));
//接收数据
int recvlen=recvfrom(svr,recvBuf,128,0,(sockaddr*)&addrClient,&len);
::CopyMemory(&t,recvBuf,128);
}
//。。。。。。。
通过socket传到vc里进行调试如下:
 
二、当 vb中调整代码为(.strM3 )
显然,不是UNICODE的表示方法
另人郁闷??????
----------------------------------------------------------
添加 tmp.strM3 = StrConv(tmp.strM3, vbUnicode):


相关文档:

用VB枚举系统进程PID及路径

http://blog.csdn.net/cw198624/archive/2009/02/19/3911759.aspx
添加一个ListBox和一个按钮
Option Explicit
Private Declare Function CloseHandle Lib "kernel32" (ByVal Handle As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As L ......

VC实现类似VB中的LinkLabel功能

VC实现类似VB中的LinkLabel功能
 
 //VB里面有个LinkLabel,VB中的Label在VC中式CStatic,但是VC中CStatic没有类似LinkLabel的功能。可以自己
//添加一点代码来实现:
//不知道为什么IDC_HANDD一定要自己定义一下
#define IDC_HAND MAKEINTRESOURCE(32649)
//处理鼠标移动
void CAppNonameDlg::OnMouseMov ......

vb做的大小写字母转换器

'大小写字母转换器vb
'界面包括 command、command1、command2、command3 和一个 text 文本框
'command 为“互转”按钮,command1 为“转大”按钮,command2 为“转小”按钮,command3 为“清除”按钮
Private Sub Command_Click()
Dim i As Integer, n As Integer
Dim x As S ......

VB coding

1.用VB6判断文件存在妙法
在编程时经常会用到判断文件是否存在,比如对文件做读写操作前,或是判断密钥文件是否存在等。判断的方法有很多,有些方法虽很实用,但有点繁琐。其实还可以有更简单的方法,就是使用VB 6.0提供的FileSystemObject对象。
  FileSystemObject对象不是VB内置对象,使用前必须首先选择[工程]&rar ......

VB/VB.NET 禁止一个程序运行多次

VB.NET 禁止一个程序运行多次代码:
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If UBound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) > 0 Then
MsgB ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号