在头文件中声明了一个类,在CPP文件中却出现错误error C2653: “EdgeCurve”: 不是类或命名空间名称,这两个文件在同一目录。求大神解答

baidu_31903513 2015-10-10 04:28:26
我是在VS2005中开发的,
//头文件EdgeCurve.h

#pragma once
class EdgeCurve
{
public:
EdgeCurve();
~ EdgeCurve();

ON_3dPoint p_start, p_end;
ON_3dPoint Initpoint[4];
//Initpoint[-1]=Initpoint[4]=0;
ON_3dPoint Evpoint[5];
ON_3dVector start_Der1,start_Der2;
ON_3dVector end_Der1,end_Der2;
ON_3dVector start_normal,end_normal;
ON_3dVector start_du,start_dv;
ON_3dVector end_du,end_dv;

double start_k1,start_k2;
double end_k1,end_k2;
double start_k, end_k;

int left_fi, right_fi;
int left_ei, right_ei;

double f1,f2,f3,f4;
ON_3dVector n1,n2;

BOOL b_boudary;

void InitCurve();
void EvCurve();
void ModifyCurve();
};


//EdgeCurve.cpp
#include "EdgeCurve.h"
#include "stdafx.h"
#include <math.h>
EdgeCurve:: EdgeCurve()
{

}
EdgeCurve::~EdgeCurve()
{

}

void EdgeCurve::InitCurve()
{
ON_3dVector v1,v2;
ON_3dVector v=(ON_3dVector)(p_end-p_start);
v1=v-ON_DotProduct(v,start_normal)*start_normal;
v1.Unitize();
v2=v-ON_DotProduct(v,end_normal)*end_normal;
v2.Unitize();
Initpoint[0]=p_start;
Initpoint[1]=p_start+(2*ON_DotProduct(v,v1)-ON_DotProduct(v,v2)*ON_DotProduct(v1,v2))*v1/(4-pow(ON_DotProduct(v1,v2),2));
Initpoint[2]=p_end+(ON_DotProduct(v,v1)*ON_DotProduct(v1,v2)-2*ON_DotProduct(v,v2))*v2/(4-pow(ON_DotProduct(v1,v2),2));
Initpoint[3]=p_end;
}
void EdgeCurve::EvCurve()
{
for(int i=0;i<5;i++)
{

Evpoint[i]=i*Initpoint[i-1]+(4-i)*Initpoint[i]/4
}
}
void EdgeCurve::ModifyCurve()
{
start_Der1=Evpoint[1]-Evpoint[0];
end_Der1=Evpoint[4]-Evpoint[3];
ON_3dVector temp_v1,temp_v2;
double start_angle,end_angle;

start_angle=ON_DotProduct(start_Der1,start_du);
start_angle/=start_Der1.Length()*start_du.Length();
start_angle=acos(start_angle);

end_angle=ON_DotProduct(end_Der1,end_du);
end_angle/=end_Der1.Length()*end_du.Length();
end_angle=acos(end_angle);

start_k=start_k1*pow(cos(start_angle),2)+start_k2*pow(sin(start_angle),2);
end_k=end_k1*pow(cos(end_angle),2)+end_k2*pow(sin(end_angle),2);

temp_v1=Evpoint[2]-Evpoint[1];
temp_v2=Evpoint[2]-Evpoint[3];
double x,z;
ON_3dVector N=ON_CrossProduct(start_normal,end_normal);
ON_3dVector B=ON_CrossProduct(N,start_normal);

x=16*start_Der1.LengthSquared()*start_k/12-ON_DotProduct(temp_v1,start_normal);
z=(16*end_Der1.LengthSquared()*end_k/12-ON_DotProduct(temp_v2,end_normal)-x*ON_DotProduct(start_normal,end_normal))/ON_DotProduct(B,end_normal);
Evpoint[2]=Evpoint[2]+x*start_normal+z*B;

}


//出现的相关错误,求大神解答
1>EdgeCurve.cpp
1>.\EdgeCurve.cpp(4) : error C2653: “EdgeCurve”: 不是类或命名空间名称
1>.\EdgeCurve.cpp(5) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>.\EdgeCurve.cpp(7) : warning C4508: “EdgeCurve”: 函数应返回一个值;假定“void”返回类型
1>.\EdgeCurve.cpp(8) : error C2653: “EdgeCurve”: 不是类或命名空间名称
1>.\EdgeCurve.cpp(8) : fatal error C1903: 无法从以前的错误中恢复;正在停止编译
...全文
537 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
强长黑粗硬 2019-02-06
  • 打赏
  • 举报
回复
结贴给分啊。
LZ一点职业道德都没有。
baidu_31903513 2015-10-10
  • 打赏
  • 举报
回复
谢谢#3楼的朋友啊,改了没有出现那样的错误了
fefe82 2015-10-10
  • 打赏
  • 举报
回复 7
把 #include "stdafx.h" 放到第一行
baidu_31903513 2015-10-10
  • 打赏
  • 举报
回复
不知道为什么会报这样的错,类已经定义了,而且类的构造函数和析构函数都没有返回值
eziowayne 2015-10-10
  • 打赏
  • 举报
回复
错误提示很详尽了,再不会就把错误提示贴到google上去搜。
欧姆龙FINS(工厂集成网络系统)协议是专为该公司自动化设备间数据交互而设计的网络通信标准。该协议构建于TCP/IP基础之上,允许用户借助常规网络接口执行远程监控、程序编写及信息传输任务。本文档所附的“欧ronFins.zip”压缩包提供了基于C与C++语言开发的FINS协议实现代码库,旨在协助开发人员便捷地建立与欧姆龙可编程逻辑控制器的通信连接。 FINS协议的消息框架由指令头部、地址字段、操作代码及数据区段构成。指令头部用于声明消息别与长度信息;地址字段明确目标设备所处的网络位置与节点标识;操作代码定义了具体的通信行为,例如数据读取、写入或控制器指令执行;数据区段则承载实际交互的信息内容。 在采用C或C++语言实施FINS协议时,需重点关注以下技术环节: 1. **网络参数设置**:建立与欧姆龙可编程逻辑控制器的通信前,必须获取控制器的网络地址、子网划分参数及路由网关地址,这些配置信息通常记载于设备技术手册或系统设置界面。 2. **通信链路建立**:通过套接字编程技术创建TCP连接至控制器。该过程涉及初始化套接字实例、绑定本地通信端口,并向控制器网络地址发起连接请。 3. **协议报文构建**:依据操作代码与目标功能构造符合规范的FINS协议数据单元。例如执行输入寄存器读取操作时,需准确配置对应的操作代码与存储器地址参数。 4. **数据格式转换**:协议通信过程需进行二进制数据的编码与解码处理,包括将控制器的位状态信息或数值参数转换为字节序列进行传输,并在接收端执行逆向解析。 5. **异常状况处理**:完善应对通信过程可能出现的各异常情况,包括连接建立失败、响应超时及错误状态码返回等问题的处理机制。 6. **数据传输管理**:运用数据发送与接收函数完成信息交换。需注意FINS协议可能涉及数据包的分割传输与重组机制,因单个协议报文可能被拆分为多个TCP数据段进行传送。 7. **响应信息解析**:接收到控制器返回的数据后,需对FINS响应报文进行结构化解析,以确认操作执行状态并提取有效返回数据。 在代码资源包,通常包含以下组成部分:展示连接建立与数据读写操作的示范程序;实现协议报文构建、传输接收及解析功能的源代码文件;说明库函数调用方式与接口规范的指导文档;用于验证功能完整性的测试案例。开发人员可通过研究这些材料掌握如何将FINS协议集成至实际项目,从而实现与欧姆龙可编程逻辑控制器的高效可靠通信。在工程实践,还需综合考虑网络环境稳定性、通信速率优化及故障恢复机制等要素,以确保整个控制系统的持续可靠运行。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!

65,207

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧