[C++Error] Unit1.cpp[17]:E2141 Declaration syntax error 怎样解决??

//---------------------------------------------------------------------------
//-----
//-------------
//#include <vcl.h>
#include <math.h>
#pragma hdrstop
#include "data.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "SPComm"
#pragma resource "*.dfm"
double v;
double u=0;
double Initial_value=0;
double Angle=0;
double roundoff=0;
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Comm1ReceiveData(TObject *Sender, Pointer Buffer,
WORD BufferLength)
{
char Buf[4096];
double Sensitivity=50; /*for tuning the gyro sensor*/
Move(Buffer,Buf,BufferLength);
v=-1*Buf[0];
if(Initial_value==0)
Initial_value=v;
v=v-Initial_value; /*finding the zero shift*/
if(abs(v)<=2&&v!=0) /*to get rid of the noise*/
v=0;
v=v*Sensitivity;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Comm1->StartComm();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
double Distance;
if((u>=0&&v>=0)||(u<=0&&v<=0)) /*rotation in the same direction*/
Distance=(u+v)/100;
else if (u>0&&v<0)
{
Distance=((u*u+v*v)/100/(u-v)); /*rotate in different directions*/
}
else
{
Distance=((u*u+v*v)/100/(v-u)); /*rotate in different directions*/
}
Angle=Angle+Distance;
roundoff=(floor(Angle*100))/100;
u=v;
Memo1->Lines->Add(roundoff); /*add the angular value in the box*/
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Memo1->Clear();
}
//---------------------------------------------------------------------------
他说我在TForm1 *Form1 这里有问题.
[C++Error] Unit1.cpp[17]:E2141 Declaration syntax error
[C++Error] Unit1.cpp[19]:E2090 Qualifier 'TForm1' is not a class or namespace name
[C++Error] Unit1.cpp[19]: E2040 Declaration terminated incorrectly
__fastcall TForm1::TForm1(TComponent* Owner) <<<<这里有以下问题.
[C++Error] Unit1.cpp[19]:E2090 Qualifier 'TForm1' is not a class or namespace name
[C++Error] Unit1.cpp[19]: E2040 Declaration terminated incorrectly

第1个回答  2012-02-23
提示说TForm1未声明,但它是由系统产生的,应该不存在问题。不知是不是你删掉了某些文件,或者代码。

建议重新来过,即先生成一个带Form的空项目,编译保存,然后再把其他的内容一点点补充进去。一步步添加内容的同时进行编译,可以找到出错的原因。追问

重新来过,似乎是个#include "data.h" 的问题. 删去这个就运行了. 想问下#include "data.h" 这个有什么用? 好像是用来放DATA 的地方..@@

追答

C:\Program Files\Borland\CBuilder6\Include\data.h可以看到它的定义,是用来操作数据的一个类。我没用过它。你编程的时候是系统自己引用的该头文件吗?

追问

不是系统自己引用的,
这个PORGRAM 是在Internet下的. 因为不明白所以问.

本回答被提问者采纳

...Unit1.cpp[17]:E2141 Declaration syntax error 怎样解决??_百度知...
建议重新来过,即先生成一个带Form的空项目,编译保存,然后再把其他的内容一点点补充进去。一步步添加内容的同时进行编译,可以找到出错的原因。

...Unit1.cpp(10): E2141 Declaration syntax error 求解答
using namespace std;如果不想加最好是 include <iostream.h> include <conio.h> 还有,int main()改成int main(void)这样写会好一些 还有,bool e 定义的是布尔型最好是赋布尔值ture||false 其他地方没仔细看

关于C++builder程序出错的问题
成员变量要在类内声明,成员函数也要在类内声明,外部引用的话(以你的类名举例)是在cpp文件内这样写 Void TChatServerForm::SetServerStatus(ServerStatus_serverstatus i){ } 还有,声明的私有的函数,最好加__fastcall,这样在编译的时候会认为是类内部调用的函数,加快执行速度,但是公有函数不可以...

相似回答