在CBuilder3中,如何使用VB的MSCOMM控件?(50分)

  • 主题发起人 主题发起人 呆非4
  • 开始时间 开始时间

呆非4

Unregistered / Unconfirmed
GUEST, unregistred user!
如何给MSCOMM的OUTPUT及Input属性赋值?
我有一个自定义结构,如:
typedef struct{
long mylong;
char mychar[6];
...
}MYSTRU;
MYSTRU aa[1000];

如何将aa的内容通过串口发出去?
 
你去看看PVB5的中文介绍就全明白了
记得给我加分,有事Email to me!
 
VB5中文版的MSCOMM我用过,在DELPHI中我也用过,都是直接赋值。
如:
dim mystr as string
mystr="IS TEST"
MsComm1.Output=mystr
mystr=MsComm1.Input
但在Cbuild3中我也直接赋值,但Compile时出现
"Cannot Convert 'char *' to "System:OleVariant"




 
如果CB支持varolestr类型的话,你应该把mystr定义为这种类型.
 
或者定义成WideString
 
我的目的是把我自定义类型的变量数组值发出去,
详见最顶上的帖子。
 
你的目的我看明白了,但你又说连string都发不出去了
那structure不是更不好办了?

Commdrv32的新版有Sendbyte函数,也许能完成这个工作,
但不知有没有BCB版的.
 
请问何处有Commdrv32??
 
同样较好的还有spcomm,两者都可以在:
http://www.nease.net/~bozhi/
下载,并有spcomm的例子.

但那里的commdrv32是新是旧不太清楚
我可以mail你一个.
 


我知道了。
如此:

byte *ptr;
Variant v;

ptr=(byte *)v.ArrayLock();

//****** send ******
memcpy(ptr,(byte *)aa, sizeof(MYSTRU));
v.ArrayUnlock();
MsComm->Output=v;

//******* receive *******

byte *invar;
invar = (byte *)Mscomm1->Input.ArrayLock();
memcpy(ptr,invar,sizeof(MYSTRU));
v.ArrayUnlock();
 

Similar threads

后退
顶部