一个关于MScom控件在winXP下使用的问题
心语天空 2006-03-27 11:06:29 //---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "MSCommLib_OCX"
#pragma resource "*.dfm"
TForm1 *Form1;
AnsiString string="nihao"; //要通过mscomm控件向串口写入的内容
AnsiString b; //用来保存从串口读出的字符串数据
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
MSComm1->PortOpen=true; //打开串口
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
MSComm1->Output=StringToOleStr(string); //向串口写入string内容,即“nihao”
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MSComm1Comm(TObject *Sender)
{
//以下是从串口读数据的程序,mscom控件rthreshold值为1,即,接到一个字符,就产生一次OnCom事件
OleVariant s; //定义一个接收的临时变量
if (MSComm1->CommEvent==comEvReceive)
{
s=MSComm1->Input; //S接收串口输入
b+=s.AsType(varString); //将S转变为AnsiString类型,并存入变量b中
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
ShowMessage(b); //显示b中的内容,看看串口的数据写入的是否正确
}
//---------------------------------------------------------------------------
请高手们帮看看上面的源程序,为什么我通过上面的程序不能写串口,读串口,请帮帮忙,急用呢!