Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 重新定义不同的基本类型=>typedef_C++_Visual Studio 2010_Types_Redefinition - Fatal编程技术网

C++ 重新定义不同的基本类型=>typedef

C++ 重新定义不同的基本类型=>typedef,c++,visual-studio-2010,types,redefinition,C++,Visual Studio 2010,Types,Redefinition,在意识到与我有相同问题的人之后,我仍然得到以下错误: 错误C2371:“ST_椭圆”:重新定义;不同的基本类型 见“圣埃利斯”宣言 C2371:“圣维克特斯”:重新定义;不同的基本类型 见《圣维克特斯宣言》 “ST_ROI”:重新定义;不同的基本类型 参见“ST_ROI”宣言 “ST_转换”:重新定义;不同的基本类型 参见“ST_转换”声明 “圣帕劳视觉”:重新定义;不同的基本类型 见“圣帕劳视觉”宣言 文件如下: #define MAX_VAL_VISU 245 #define

在意识到与我有相同问题的人之后,我仍然得到以下错误:

错误C2371:“ST_椭圆”:重新定义;不同的基本类型 见“圣埃利斯”宣言 C2371:“圣维克特斯”:重新定义;不同的基本类型 见《圣维克特斯宣言》 “ST_ROI”:重新定义;不同的基本类型 参见“ST_ROI”宣言 “ST_转换”:重新定义;不同的基本类型 参见“ST_转换”声明 “圣帕劳视觉”:重新定义;不同的基本类型 见“圣帕劳视觉”宣言

文件如下:

#define MAX_VAL_VISU        245
#define MAX_VAL_VISU_SUPP   128
#define MAX_VAL_OVR_SUPP    116

#define VISU_SIZE_X         672
#define VISU_SIZE_Y         512
#define DELTA_ZONE          5

#define FLAG_RIEN           1
#define FLAG_ZOOM           2
#define FLAG_DEP            4
#define FLAG_STAT           8
#define FLAG_CONTRASTE      16
#define FLAG_ZONE           32
#define FLAG_OVR_WRITE      64
#define FLAG_OVR_EFF        128
#define FLAG_OVR_TEXTE      256
#define FLAG_ROI            512  // V2.0

// flag de suppression (& avec flag au dessus)
#define FLAG2_RIEN          0  // 0 aucune autres fenetres
#define FLAG2_ZOOM          0
#define FLAG2_DEP           0
#define FLAG2_STAT          FLAG_CONTRASTE
#define FLAG2_CONTRASTE     (FLAG_STAT | FLAG_ZONE | FLAG_ROI)
#define FLAG2_ZONE          FLAG_CONTRASTE
#define FLAG2_OVR_WRITE     (FLAG_ROI | FLAG_CONTRASTE)
#define FLAG2_OVR_EFF       (FLAG_ROI | FLAG_CONTRASTE)
#define FLAG2_OVR_TEXTE     0
#define FLAG2_ROI           FLAG_CONTRASTE 


#define TYPE_MODIF_ZONE_RIEN    0 // pas de modification
#define TYPE_MODIF_ZONE_H       1 // definition de la ligne Haut
#define TYPE_MODIF_ZONE_B       2 // definition de la ligne BAS
#define TYPE_MODIF_ZONE_G       3 // definition de la ligne gauche
#define TYPE_MODIF_ZONE_D       4 // definition de la ligne droite
#define TYPE_MODIF_ZONE_P1      5 // definition du point haut/gauche
#define TYPE_MODIF_ZONE_P2      6 // definition du point bas/droite
#define TYPE_MODIF_ZONE_P3      7 // definition du point bas/gauche
#define TYPE_MODIF_ZONE_P4      8 // definition du point haut/droite

#define LUT_GRAY        0
#define LUT_COLOR1      1
#define LUT_COLOR2      2
#define LUT_FICHIER     3
#define LUT_SUPERPOSITION   4

#define NB_COULEUR 10

#define ROI_ZONE    0
#define NB_ROI      10

#define NB_UNITE    2

// structure
//***********
// V2.0
// ROI
typedef struct 
{
    // données de depart
    double x1[NB_UNITE],y1[NB_UNITE],x2[NB_UNITE],y2[NB_UNITE],d2[NB_UNITE];
    // donnee calculées
    double d1[NB_UNITE];
    double x11,y11,x22,y22; 
    // angle de rotation 
    double angle;
    // origine
    double ox,oy;
    // position foyer
    double fx1,fx2,fy1,fy2,dist;
    // min max en X et en Y
    int x_min,y_min,x_max,y_max;
}ST_ELLIPSE;
typedef struct 
{
    int nb;
    double x[NB_UNITE][10],y[NB_UNITE][10];
}ST_VECTEURS;

#define ROI_RECTANGLE   0
#define CHAR_ROI_RECTANGLE  "R"
#define ROI_ELLIPSE     1
#define CHAR_ROI_ELLIPSE    "E"
#define ROI_VECTEURS    2
#define CHAR_ROI_VECTEURS   "V"

typedef struct{
    bool flag_def_zone;
    int type_roi;
    // rectangle
    double x_zone[NB_UNITE],y_zone[NB_UNITE],dx_zone[NB_UNITE],dy_zone[NB_UNITE];
    // ellipse
    ST_ELLIPSE ellipse;
    // vecteurs
    ST_VECTEURS vecteurs;
}ST_ROI;

// V2.0
#define CONVERSION_ZONE  1  // indice dans ST_CONVERSION
// parametres de conversion pixel ->mm
typedef struct {
    double x_pix,x_mm,y_pix,y_mm;
    double coef_x;
    double coef_y;
    CString unite[2];
}ST_CONVERSION;

// V2.0
// parametres de la visu
typedef struct{
    int x_zoom,y_zoom,m_zoom; // zoom
    ST_ROI roi[NB_ROI]; // roi
    int ind_conversion;
    ST_CONVERSION coef_conversion[2]; // conversion pour stat pix->autre unité
}ST_PARA_VISU;`
有人会有什么想法吗

谢谢你的帮助

如果您不介意使用宏,那么将pragma放在每个.h文件的顶部一次是一种方法,否则,“正确”的方法是

#ifndef AWESOME_H
#define AWESOME_H
class Awesome
{
    //awesome.h contents
};
#endif

看来你忘了你的布拉格曾经是你的朋友。把他放在每个.h文件的顶部。在C++中,你不需要使用TyPufFr.Stutt。您可以通过它们的标记名来引用它们:struct ST_ROI{…};感谢您发布结构定义。现在,把生成错误的代码添加到“编辑你的帖子”中怎么样?@Thomasmatthew你很有趣,如果我知道代码错误在哪里,我就不会在这里寻求帮助了。嗯……这不是也在使用宏吗?