已经做三个星期了 从开始最简单的 到现在多线程序 请各位大哥指点一下 老师安排任务重 我BCB刚学 压力好大
下面是源程序 请指点一下 我会高分相送的
这个是Unit1.cpp的内容//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#pragma hdrstop
#include "stdio.h"
#include "conio.h"
#include "math.h"
#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
#include "D2kDask.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
#define Basetime 400000
#define SCANCOUNT 10
#define ADCONVERTSRC DAQ2K_AI_ADCONVSRC_Int
#define ADTRIGSRC DAQ2K_AI_TRGSRC_SOFT
#define ADTRIGMODE DAQ2K_AI_TRGMOD_DELAY
#define ADTRIGPOL DAQ2K_AI_TrgPositive
#define BUFAUTORESET 1
#define SCAN_INTERVAL 4000
#define DELAYCOUNT 0
#define DELAYMODE DAQ2K_AI_Dly1InTimebase
double i=0;
double y=0;
U16 inputRangeCH1;
U16 inputRangeCH2;
U16 inputRangeCH3;
U16 inputRangeCH4;
U16 rangeCH1;
U16 rangeCH2;
U16 rangeCH3;
U16 rangeCH4;
double ampAlarm1;
double ampAlarm2;
unsigned char halfReady=0;
unsigned char fstop;
U16 Card_ID=-1;
I16 err;
FILE *svfile;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CheckBox5Click(TObject *Sender)
{ if(CheckBox5->Checked)
{
Memo1->Lines->Add("保存原始采集数据");
GroupBox2->Caption="保存原始采集数据";
svfile = fopen("MMMData.dat", "w");
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
err = D2K_AI_CH_Config (Card_ID, 0, inputRangeCH1);
if (err!=NoError)
{
Memo1->Lines->Add("D2K_AI_CH_Config failed!");
exit(1);
}
else
{
Memo1->Lines->Add("D2K_AI_CH_Config Sucess!");
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
ComboBox1->Items->Add("-5~5 V");
ComboBox1->Items->Add("-2.5~2.5 V");
ComboBox1->Items->Add("-1.25~1.25 V");
ComboBox1->Items->Add("0~10 V");
ComboBox1->Items->Add("0~5 V");
ComboBox1->Items->Add("0~2.5 V");
ComboBox1->Items->Add("0~1.25 V");
ComboBox1->Items->Add("-10~10 V");
ComboBox1->ItemIndex = 0; ampAlarm1 = Edit5->Text.ToDouble();
ampAlarm2 = Edit6->Text.ToDouble(); Card_ID=D2K_Register_Card(DAQ_2010, 0);
if (Card_ID < 0)
{
Memo1->Lines->Add("D2K_Register_Card Error");
exit(-1);
}
else
{
Memo1->Lines->Add("D2K_Register_Card Sucess:2010");
} thread1=new TMyThread1(true); //创建线程对象
thread2=new TMyThread1(true); //创建线程对象
thread3=new TMyThread2(true); //创建线程对象
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{
err = D2K_AI_Config(Card_ID,ADCONVERTSRC,ADTRIGSRC|ADTRIGMODE|ADTRIGPOL|DELAYMODE,DELAYCOUNT,0,0,BUFAUTORESET);
if (err!=0)
{
Memo1->Lines->Add("DAQ_2010 config error");
exit(1);
}
else
{
Memo1->Lines->Add("DAQ_2010 config Sucess");
}
err=D2K_AI_AsyncDblBufferMode(Card_ID,1);
if(err!=NoError)
{
Memo1->Lines->Add("DAQ_2010 Buffer setting error");
exit(1);
}
else
{
Memo1->Lines->Add("DAQ_2010 Buffer setting Sucess");
}}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ampAlarm1 = Edit5->Text.ToDouble();
ampAlarm2 = Edit6->Text.ToDouble();
Memo1->Lines->Add("报警上限设置成功");
Memo1->Lines->Add("报警下限设置成功");}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Button2->Enabled = false;
Button3->Enabled = true;
thread1->Resume();
thread2->Resume();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Button2->Enabled = true;
Button3->Enabled = false;
thread1->Terminate();
thread2->Terminate();
thread3->Terminate();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Shape1->Brush->Color = clWhite;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{
switch(ComboBox1->ItemIndex)
{
case 1:
inputRangeCH1 = AD_B_5_V;
rangeCH1 = 10;
break; case 2:
inputRangeCH1 = AD_B_2_5_V;
rangeCH1 = 5;
break; case 3:
inputRangeCH1 = AD_B_1_25_V;
rangeCH1 = 2.5;
break; case 4:
inputRangeCH1 = AD_U_10_V;
rangeCH1 = 10;
break; case 5:
inputRangeCH1 = AD_U_5_V;
rangeCH1 = 5;
break; case 6:
inputRangeCH1 = AD_U_2_5_V;
rangeCH1 = 2.5;
break; case 7:
inputRangeCH1 = AD_U_1_25_V;
rangeCH1 = 1.25;
break; default:
inputRangeCH1 = AD_B_10_V;
rangeCH1 = 20; }
}
//---------------------------------------------------------------------------void __fastcall TForm1::ComboBox2Change(TObject *Sender)
{
switch(ComboBox2->ItemIndex)
{
case 1:
inputRangeCH2 = AD_B_5_V;
rangeCH2 = 10;
break; case 2:
inputRangeCH2 = AD_B_2_5_V;
rangeCH2 = 5;
break; case 3:
inputRangeCH2 = AD_B_1_25_V;
rangeCH2 = 2.5;
break; case 4:
inputRangeCH2 = AD_U_10_V;
rangeCH2 = 10;
break; case 5:
inputRangeCH2 = AD_U_5_V;
rangeCH2 = 5;
break; case 6:
inputRangeCH2 = AD_U_2_5_V;
rangeCH2 = 2.5;
break; case 7:
inputRangeCH2 = AD_U_1_25_V;
rangeCH2 = 1.25;
break; default:
inputRangeCH2 = AD_B_10_V;
rangeCH2 = 20;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox3Change(TObject *Sender)
{
switch(ComboBox3->ItemIndex)
{
case 1:
inputRangeCH3 = AD_B_5_V;
rangeCH3 = 10;
break; case 2:
inputRangeCH3 = AD_B_2_5_V;
rangeCH3 = 5;
break; case 3:
inputRangeCH3 = AD_B_1_25_V;
rangeCH3 = 2.5;
break; case 4:
inputRangeCH3 = AD_U_10_V;
rangeCH3 = 10;
break; case 5:
inputRangeCH3 = AD_U_5_V;
rangeCH3 = 5;
break; case 6:
inputRangeCH3 = AD_U_2_5_V;
rangeCH3 = 2.5;
break; case 7:
inputRangeCH3 = AD_U_1_25_V;
rangeCH3 = 1.25;
break; default:
inputRangeCH3 = AD_B_10_V;
rangeCH3 = 20;
}
}
//---------------------------------------------------------------------------void __fastcall TForm1::ComboBox4Change(TObject *Sender)
{
switch(ComboBox4->ItemIndex)
{
case 1:
inputRangeCH4 = AD_B_5_V;
rangeCH4 = 10;
break; case 2:
inputRangeCH4 = AD_B_2_5_V;
rangeCH4 = 5;
break; case 3:
inputRangeCH4 = AD_B_1_25_V;
rangeCH4 = 2.5;
break; case 4:
inputRangeCH4 = AD_U_10_V;
rangeCH4 = 10;
break; case 5:
inputRangeCH4 = AD_U_5_V;
rangeCH4 = 5;
break; case 6:
inputRangeCH4 = AD_U_2_5_V;
rangeCH4 = 2.5;
break; case 7:
inputRangeCH4 = AD_U_1_25_V;
rangeCH4 = 1.25;
break; default:
inputRangeCH4 = AD_B_10_V;
rangeCH4 = 20;
}
}
//---------------------------------------------------------------------------
下面是源程序 请指点一下 我会高分相送的
这个是Unit1.cpp的内容//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#pragma hdrstop
#include "stdio.h"
#include "conio.h"
#include "math.h"
#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
#include "D2kDask.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
#define Basetime 400000
#define SCANCOUNT 10
#define ADCONVERTSRC DAQ2K_AI_ADCONVSRC_Int
#define ADTRIGSRC DAQ2K_AI_TRGSRC_SOFT
#define ADTRIGMODE DAQ2K_AI_TRGMOD_DELAY
#define ADTRIGPOL DAQ2K_AI_TrgPositive
#define BUFAUTORESET 1
#define SCAN_INTERVAL 4000
#define DELAYCOUNT 0
#define DELAYMODE DAQ2K_AI_Dly1InTimebase
double i=0;
double y=0;
U16 inputRangeCH1;
U16 inputRangeCH2;
U16 inputRangeCH3;
U16 inputRangeCH4;
U16 rangeCH1;
U16 rangeCH2;
U16 rangeCH3;
U16 rangeCH4;
double ampAlarm1;
double ampAlarm2;
unsigned char halfReady=0;
unsigned char fstop;
U16 Card_ID=-1;
I16 err;
FILE *svfile;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CheckBox5Click(TObject *Sender)
{ if(CheckBox5->Checked)
{
Memo1->Lines->Add("保存原始采集数据");
GroupBox2->Caption="保存原始采集数据";
svfile = fopen("MMMData.dat", "w");
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
err = D2K_AI_CH_Config (Card_ID, 0, inputRangeCH1);
if (err!=NoError)
{
Memo1->Lines->Add("D2K_AI_CH_Config failed!");
exit(1);
}
else
{
Memo1->Lines->Add("D2K_AI_CH_Config Sucess!");
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
ComboBox1->Items->Add("-5~5 V");
ComboBox1->Items->Add("-2.5~2.5 V");
ComboBox1->Items->Add("-1.25~1.25 V");
ComboBox1->Items->Add("0~10 V");
ComboBox1->Items->Add("0~5 V");
ComboBox1->Items->Add("0~2.5 V");
ComboBox1->Items->Add("0~1.25 V");
ComboBox1->Items->Add("-10~10 V");
ComboBox1->ItemIndex = 0; ampAlarm1 = Edit5->Text.ToDouble();
ampAlarm2 = Edit6->Text.ToDouble(); Card_ID=D2K_Register_Card(DAQ_2010, 0);
if (Card_ID < 0)
{
Memo1->Lines->Add("D2K_Register_Card Error");
exit(-1);
}
else
{
Memo1->Lines->Add("D2K_Register_Card Sucess:2010");
} thread1=new TMyThread1(true); //创建线程对象
thread2=new TMyThread1(true); //创建线程对象
thread3=new TMyThread2(true); //创建线程对象
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{
err = D2K_AI_Config(Card_ID,ADCONVERTSRC,ADTRIGSRC|ADTRIGMODE|ADTRIGPOL|DELAYMODE,DELAYCOUNT,0,0,BUFAUTORESET);
if (err!=0)
{
Memo1->Lines->Add("DAQ_2010 config error");
exit(1);
}
else
{
Memo1->Lines->Add("DAQ_2010 config Sucess");
}
err=D2K_AI_AsyncDblBufferMode(Card_ID,1);
if(err!=NoError)
{
Memo1->Lines->Add("DAQ_2010 Buffer setting error");
exit(1);
}
else
{
Memo1->Lines->Add("DAQ_2010 Buffer setting Sucess");
}}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ampAlarm1 = Edit5->Text.ToDouble();
ampAlarm2 = Edit6->Text.ToDouble();
Memo1->Lines->Add("报警上限设置成功");
Memo1->Lines->Add("报警下限设置成功");}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Button2->Enabled = false;
Button3->Enabled = true;
thread1->Resume();
thread2->Resume();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Button2->Enabled = true;
Button3->Enabled = false;
thread1->Terminate();
thread2->Terminate();
thread3->Terminate();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Shape1->Brush->Color = clWhite;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{
switch(ComboBox1->ItemIndex)
{
case 1:
inputRangeCH1 = AD_B_5_V;
rangeCH1 = 10;
break; case 2:
inputRangeCH1 = AD_B_2_5_V;
rangeCH1 = 5;
break; case 3:
inputRangeCH1 = AD_B_1_25_V;
rangeCH1 = 2.5;
break; case 4:
inputRangeCH1 = AD_U_10_V;
rangeCH1 = 10;
break; case 5:
inputRangeCH1 = AD_U_5_V;
rangeCH1 = 5;
break; case 6:
inputRangeCH1 = AD_U_2_5_V;
rangeCH1 = 2.5;
break; case 7:
inputRangeCH1 = AD_U_1_25_V;
rangeCH1 = 1.25;
break; default:
inputRangeCH1 = AD_B_10_V;
rangeCH1 = 20; }
}
//---------------------------------------------------------------------------void __fastcall TForm1::ComboBox2Change(TObject *Sender)
{
switch(ComboBox2->ItemIndex)
{
case 1:
inputRangeCH2 = AD_B_5_V;
rangeCH2 = 10;
break; case 2:
inputRangeCH2 = AD_B_2_5_V;
rangeCH2 = 5;
break; case 3:
inputRangeCH2 = AD_B_1_25_V;
rangeCH2 = 2.5;
break; case 4:
inputRangeCH2 = AD_U_10_V;
rangeCH2 = 10;
break; case 5:
inputRangeCH2 = AD_U_5_V;
rangeCH2 = 5;
break; case 6:
inputRangeCH2 = AD_U_2_5_V;
rangeCH2 = 2.5;
break; case 7:
inputRangeCH2 = AD_U_1_25_V;
rangeCH2 = 1.25;
break; default:
inputRangeCH2 = AD_B_10_V;
rangeCH2 = 20;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox3Change(TObject *Sender)
{
switch(ComboBox3->ItemIndex)
{
case 1:
inputRangeCH3 = AD_B_5_V;
rangeCH3 = 10;
break; case 2:
inputRangeCH3 = AD_B_2_5_V;
rangeCH3 = 5;
break; case 3:
inputRangeCH3 = AD_B_1_25_V;
rangeCH3 = 2.5;
break; case 4:
inputRangeCH3 = AD_U_10_V;
rangeCH3 = 10;
break; case 5:
inputRangeCH3 = AD_U_5_V;
rangeCH3 = 5;
break; case 6:
inputRangeCH3 = AD_U_2_5_V;
rangeCH3 = 2.5;
break; case 7:
inputRangeCH3 = AD_U_1_25_V;
rangeCH3 = 1.25;
break; default:
inputRangeCH3 = AD_B_10_V;
rangeCH3 = 20;
}
}
//---------------------------------------------------------------------------void __fastcall TForm1::ComboBox4Change(TObject *Sender)
{
switch(ComboBox4->ItemIndex)
{
case 1:
inputRangeCH4 = AD_B_5_V;
rangeCH4 = 10;
break; case 2:
inputRangeCH4 = AD_B_2_5_V;
rangeCH4 = 5;
break; case 3:
inputRangeCH4 = AD_B_1_25_V;
rangeCH4 = 2.5;
break; case 4:
inputRangeCH4 = AD_U_10_V;
rangeCH4 = 10;
break; case 5:
inputRangeCH4 = AD_U_5_V;
rangeCH4 = 5;
break; case 6:
inputRangeCH4 = AD_U_2_5_V;
rangeCH4 = 2.5;
break; case 7:
inputRangeCH4 = AD_U_1_25_V;
rangeCH4 = 1.25;
break; default:
inputRangeCH4 = AD_B_10_V;
rangeCH4 = 20;
}
}
//---------------------------------------------------------------------------
解决方案 »
- 列表框控件中怎样插入pg图片?
- vc++中的静态变量问题
- 关于SetLayeredWindowAttributes问题
- 现在谁还能提供MSDN2001的版本下载??多谢先了!
- 为什么.NET与V6下的操作不一样??
- 为什么在WIN98和WINME下面找不到窄带拨号设备(MODEM)
- Add TypeLib是干什么用的?
- 各位帮忙了,怎么在Radio Button控件上放置图片?和在Button的方法一样吗?
- c runtime/mfc/windows API这些函数库究竟有什么区别?
- To hide(躲在风里面).有是一套在unix上仿照windows,实现全部windows的源码?
- STLport4.0可以被后续版本兼容吗?到底如何安装?
- OnEraseBkgnd函数不响应
#include <vcl.h>
#pragma hdrstop
#include "stdio.h"
#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
#include "conio.h"
#include "math.h"
#include "D2kDask.h"
#pragma package(smart_init)
#define SCAN_INTERVAL 4000
#define SCANCOUNT 10
U16 Id;
U16 tmpId = 0;
U32 count1,startPos;
I16 Err;
short ai_buf[10];
short ai_buf2[10];
double write_to_file(short *buf,unsigned long write_count)
{ U32 i;
double y0=0;
for(i=0;i<write_count; i++)
{
fprintf(svfile,"0x%04x(%4.2fV)\n", buf[i]&0xffff,((F64)(buf[i]>>2))/8192*10.0);
y0+=((F64)(buf[i]>>2))/8192*10.0;
}
y=y0/10;
return y;
}
//---------------------------------------------------------------------------// Important: Methods and properties of objects in VCL can only be
// used in a method called using Synchronize, for example:
//
// Synchronize(UpdateCaption);
//
// where UpdateCaption could look like:
//
// void __fastcall TMyThread1::UpdateCaption()
// {
// Form1->Caption = "Updated in a thread";
// }
//---------------------------------------------------------------------------__fastcall TMyThread1::TMyThread1(bool CreateSuspended)
: TThread(CreateSuspended)
{
FreeOnTerminate=true;
}
//---------------------------------------------------------------------------
void __fastcall TMyThread1::Execute()
{
Err=D2K_AI_ContBufferSetup(0,ai_buf,SCANCOUNT,&Id);
Err=D2K_AI_ContBufferSetup(0,ai_buf2,SCANCOUNT,&Id);
Err = D2K_AI_ContReadChannel(0,0,Id,SCANCOUNT,SCAN_INTERVAL,SCAN_INTERVAL,ASYNCH_OP);
if (Err!=0)
{
exit(1);
}
while(!Terminated)
{
do {
D2K_AI_AsyncDblBufferHalfReady(0, &halfReady, &fstop);
}
while (!halfReady&!fstop); //Here to handle the data stored in ready buffer
if(Form1->CheckBox5->Checked)
{
write_to_file( tmpId?ai_buf2:ai_buf, SCANCOUNT);
tmpId=(tmpId+1)%2;
}
Synchronize(AlarmSetting);//管理线程同步
}
}
//---------------------------------------------------------------------------
void __fastcall TMyThread1::AlarmSetting()
{
if(y > ampAlarm1)
{
Form1->Shape1->Brush->Color = clRed;
}
if(y < ampAlarm2)
{
Form1->Shape1->Brush->Color = clYellow;
}
}
//---------------------------------------------------------------------------这个是UNIT3。CPP的内容//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "stdio.h"
#include "conio.h"
#include "math.h"
#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
#include "Unit1.cpp"
#include "Unit2.cpp"
#pragma package(smart_init)
//---------------------------------------------------------------------------// Important: Methods and properties of objects in VCL can only be
// used in a method called using Synchronize, for example:
//
// Synchronize(UpdateCaption);
//
// where UpdateCaption could look like:
//
// void __fastcall TMyThread2::UpdateCaption()
// {
// Form1->Caption = "Updated in a thread";
// }
//---------------------------------------------------------------------------__fastcall TMyThread2::TMyThread2(bool CreateSuspended)
: TThread(CreateSuspended)
{
FreeOnTerminate=true;
}
//---------------------------------------------------------------------------
void __fastcall TMyThread2::Execute()
{
if(Terminated)
{
exit(1);
} if(halfReady&fstop)
Form1->Series1->Add(y,i);
}
//---------------------------------------------------------------------------这个是UNIT1。H的内容//---------------------------------------------------------------------------#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Chart.hpp>
#include <ComCtrls.hpp>
#include <ExtCtrls.hpp>
#include <Grids.hpp>
#include <Series.hpp>
#include <TeEngine.hpp>
#include <TeeProcs.hpp>
#include <ValEdit.hpp>
#include "Unit2.h"
#include "Unit3.h"
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TPageControl *PageControl1;
TTabSheet *TabSheet1;
TTabSheet *TabSheet2;
TTabSheet *TabSheet3;
TGroupBox *GroupBox1;
TCheckBox *CheckBox1;
TCheckBox *CheckBox2;
TCheckBox *CheckBox3;
TCheckBox *CheckBox4;
TComboBox *ComboBox1;
TComboBox *ComboBox2;
TComboBox *ComboBox3;
TComboBox *ComboBox4;
TMemo *Memo1;
TGroupBox *GroupBox2;
TCheckBox *CheckBox5;
TChart *Chart1;
TLineSeries *Series1;
TGroupBox *GroupBox3;
TEdit *Edit1;
TEdit *Edit2;
TButton *Button1;
TButton *Button2;
TButton *Button3;
TButton *Button4;
TShape *Shape1;
TValueListEditor *ValueListEditor1;
TValueListEditor *ValueListEditor2;
TButton *Button5;
TButton *Button6;
void __fastcall Button5Click(TObject *Sender);
void __fastcall FormCreate(TObject *Sender);
void __fastcall ComboBox4Change(TObject *Sender);
void __fastcall ComboBox3Change(TObject *Sender);
void __fastcall ComboBox2Change(TObject *Sender);
void __fastcall ComboBox1Change(TObject *Sender);
void __fastcall Button6Click(TObject *Sender);
void __fastcall CheckBox5Click(TObject *Sender);
void __fastcall Button4Click(TObject *Sender);
void __fastcall Button3Click(TObject *Sender);
void __fastcall Button2Click(TObject *Sender);
void __fastcall Button1Click(TObject *Sender);
private: // User declarations
TMyThread1 *thread1;
TMyThread1 *thread2;
TMyThread2 *thread3;
public: // User declarations
__fastcall TForm1(TComponent* Owner);
bool fStop;
bool halfReady;
double y;
double ampAlarm1;
double ampAlarm2;
double count;
FILE *svfile;
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
这个是UNIT2。H的内容//---------------------------------------------------------------------------#ifndef Unit2H
#define Unit2H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include "Unit3.h"
#include "Unit1.h"
#include <Classes.hpp>
extern double i;
extern double y;
extern FILE *svfile;
extern unsigned char halfReady;
extern unsigned char fstop;
extern double ampAlarm1;
extern double ampAlarm2;
//---------------------------------------------------------------------------
class TMyThread1 : public TThread
{
private:
protected:
void __fastcall Execute();
void __fastcall AlarmSetting();
public:
__fastcall TMyThread1(bool CreateSuspended);
};
//---------------------------------------------------------------------------
#endif
这个是UNIT3。H的内容//---------------------------------------------------------------------------#ifndef Unit3H
#define Unit3H
//---------------------------------------------------------------------------
#include <Classes.hpp>
//---------------------------------------------------------------------------
class TMyThread2 : public TThread
{
private:
protected:
void __fastcall Execute();
public:
__fastcall TMyThread2(bool CreateSuspended);
};
//---------------------------------------------------------------------------
#endif
一运行就出错 说什么系统什么什么错误
其实程序满简单的 但是我刚学BCB 编写程基础又不好 请各位指点我一下 高分相送
一运行就出错: 提示:Project project1.exe raised exception class EosError with message 'system Error ' code :5