从VC转换到VB
我看了VC是这样定义的:
typedef struct _modem_data_t {
u32t m_modemId; // Modem模块的ID号
u64t m_recv_time; //接收到数据包的时间
u16t m_data_len; //接收到的数据包长度
u8t m_data_type; //接收到的数据包类型,
u8t m_data_buf[1]; //存储接收到的数据
}ModemDataStruct;
然后在一个函数里面我是这样来用的:
ModemDataStruct *pModemData;
pModemData=(ModemDataStruct *)(new char[10240+sizeof(ModemDataStruct)]);
static char buf[2048];
我现在要在VB中写这些,就是后面的,我该怎么来做啊!
问题点数:80、回复次数:14Top
1 楼gg137zeus(分在脚下)回复于 2004-12-02 11:48:44 得分 0
丁页Top
2 楼aiur2000(破愿立志别故里,荆棘南下思北风)回复于 2004-12-02 11:51:37 得分 5
dim pModemData as ModemDataStruct
中间这个vb中似乎用不到
dim buf(2048) as stringTop
3 楼lxjlz()回复于 2004-12-02 12:21:58 得分 5
dingTop
4 楼wxf0204(网泥www.xmlenz.cn)回复于 2004-12-02 14:27:15 得分 0
不会吧,就这样吗 ?
Top
5 楼wxf0204(网泥www.xmlenz.cn)回复于 2004-12-02 14:34:54 得分 0
我后面还有这样用的:
if pModemData->m_data_len>0
{sprintf(buf,"\r\nuserid:%8.8x,time:%s,len:%d",pModemData->m_modemId,asctime(&when),pModemData->m_data_len);
pMainFrm->AddTextToEditView(buf);
}
在VB里面怎么表达呢?Top
6 楼fog(不会就问)回复于 2004-12-02 14:36:24 得分 0
VC看不懂,你最好解释一下你写的是什么意思,这样才好帮你转换Top
7 楼fog(不会就问)回复于 2004-12-02 14:43:00 得分 20
if pModemData->m_data_len>0
{sprintf(buf,"\r\nuserid:%8.8x,time:%s,len:%d",pModemData->m_modemId,asctime(&when),pModemData->m_data_len);
pMainFrm->AddTextToEditView(buf);
}
vb为:
if pModemData.m_data_len>0 then
'\r\n不明白是什么意思,asctime(&when)这个也不明白是什么意思
buf="userid:" & pModemData.m_modemId & " time:" & asctime(&when) & " len:" & pModemData.m_data_len
'这下面一句也不理解
end ifTop
8 楼fog(不会就问)回复于 2004-12-02 14:56:42 得分 20
typedef struct _modem_data_t {
u32t m_modemId; // Modem模块的ID号
u64t m_recv_time;//接收到数据包的时间
u16t m_data_len;//接收到的数据包长度
u8t m_data_type; //接收到的数据包类型,
u8t m_data_buf[1]; //存储接收到的数据
}ModemDataStruct;
vb好象为(不是太肯定,因为vc不懂):
Private Type ModemDataStruct
m_modemId As Long
m_recv_time As Long
m_data_len As Long
m_data_type As Long
m_data_buf As String
End TypeTop
9 楼aiur2000(破愿立志别故里,荆棘南下思北风)回复于 2004-12-02 15:05:27 得分 25
if pModemData.m_data_len>0 then
'\r\n不明白是什么意思,asctime(&when)这个也不明白是什么意思
\r\n是回车换行,asctime(&when)是当前时间
buf="userid:" & pModemData.m_modemId & " time:" & asctime(&when) & " len:" & pModemData.m_data_len
sprintf相当于 debug.print
'这下面一句也不理解
也是结构里面的东西,没贴全而已
end ifTop
10 楼wxf0204(网泥www.xmlenz.cn)回复于 2004-12-03 08:44:49 得分 0
各位大侠们,主要就是前面的定义啊,我自己在VB里面是这样做的:
Public Type ModemDataStruct
m_modemid As Long 'Modem模块的ID号
m_recv_time As Long '接收到数据包的时间
m_data_buf() As Byte
m_data_len As Integer '接收到的数据包长度
m_data_type As Byte '接收到的数据包类型,
End Type
Dim rvdata As ModemDataStruct
If rvdata.m_data_len > 0 Then
。
。
现在主要就是对rvdata怎么定义啊,而且 u8t m_data_buf[1]; 在VB里面只要用这样可以吗:m_data_buf As StringTop
11 楼wxf0204(网泥www.xmlenz.cn)回复于 2004-12-03 14:44:51 得分 0
自己顶哦!Top
12 楼wxf0204(网泥www.xmlenz.cn)回复于 2004-12-06 17:14:13 得分 0
自己解决了,只要将定义的BUF的范围改成 m_data_buf(0 To 10240) As ByteTop
13 楼cindytsai(笨笨的蔡鸟)回复于 2004-12-06 17:16:25 得分 5
恭喜楼主解决问题了。Top
14 楼wxf0204(网泥www.xmlenz.cn)回复于 2004-12-17 11:09:18 得分 0
呵呵,谢谢,我要怎样才能拿回自己的分啊?我的可用分快完了,舍不得啊!Top




