从一个MFC工程里拷了几个函数调试出现问题,刚解决了头文件包含问题,可这个问题怎么也解决不了。 希望高手大家能帮忙参考一下,谢谢:)merge.h的错误代码行:void MergeRgs(MyRgnInfo* rginfoarr, INT rgnumber, INT* flag, INT width, INT height, INT* outmerge, INT& rgnum); //估计是width和height问题。。调试错误信息:
merge.cpp
e:\study\work\segmentation\merge.h(29) : error C2143: syntax error : missing ')' before 'constant'
e:\study\work\segmentation\merge.h(29) : error C2143: syntax error : missing ';' before 'constant'
e:\study\work\segmentation\merge.h(29) : fatal error C1004: unexpected end of file found
Error executing cl.exe.
Creating browse info file...
BSCMAKE: error BK1506 : cannot open file '.\Debug\segmentation.sbr': No such file or directory
Error executing bscmake.exe.segmentation.exe - 4 error(s), 0 warning(s)

解决方案 »

  1.   

    void   MergeRgs(MyRgnInfo*   rginfoarr,   INT   rgnumber,   INT*   flag,   INT   width,   INT   height,   INT*   outmerge,   INT&   rgnum);   
    这个是函数的声明,你不能直接考过来调用,
    要传入你要计算的变量如定义了MyRgnInfo*   rginfoarr,   INT   rgnumber,   INT*   flag,   INT   width,   INT   height,   INT*   outmerge,   INT&   rgnum;
    像下面这样使用:
    MergeRgs(rginfoarr,  rgnumber,  flag,   width,   height,   outmerge,  rgnum);   
      

  2.   

    这个只是头文件,仅仅是声明。  它的实现呢?错误提示 line 29  是给出的这个函数声明?
      

  3.   

    确认 MyRgnInfo和INT 都定义了。
      

  4.   

    谢谢大家。我把主要代码都贴出来大家帮忙分析下--------merge.h---------#include  <afx.h>#ifdef   _DEBUG   
      #define   new   DEBUG_NEW   
      #undef   THIS_FILE   
      static   char   THIS_FILE[]   =   __FILE__;   
      #endif/*#include "include\ado.h"*/
    #include "mymath.h"typedef struct tagRgnInfo{
    BOOL  isflag;//备用标记;
    INT   ptcount;//该区所含的点数;
    FLOAT   m;//该区MV均值
    }MyRgnInfo; //分割后各个区的一些统计信息,图像中各点所属区域的信息存放在flag数组中;
    void MergeRgs(MyRgnInfo* rginfoarr, int rgnumber, int* flag, int width, int height, int* outmerge, int& rgnum); 
    调试错误信息: 
    merge.cpp 
    e:\study\work\segmentation\merge.h(29)   :   error   C2143:   syntax   error   :   missing   ')'   before   'constant' 
    e:\study\work\segmentation\merge.h(29)   :   error   C2143:   syntax   error   :   missing   ';'   before   'constant' 
    e:\study\work\segmentation\merge.h(29)   :   fatal   error   C1004:   unexpected   end   of   file   found 
    Error   executing   cl.exe. 
    Creating   browse   info   file... 
    BSCMAKE:   error   BK1506   :   cannot   open   file   '.\Debug\segmentation.sbr':   No   such   file   or   directory 
    Error   executing   bscmake.exe. segmentation.exe   -   4   error(s),   0   warning(s)
      

  5.   

    为啥要是MFC函数呢?用WindowsAPI可以吧把那个#include     <afx.h> 删掉
    BOOL     INT       FLOAT       
    都自己定义一下,就行了把
      

  6.   

    怎么定义int? int型还需要定义吗? 我C++比较菜,还请大家多指教、
      

  7.   

    把里面的INT都换成int,BOOL都换成long,FLOAT都换成float,再编译试试
      

  8.   

    前面加上头文件Windows.h后 原来的问题没了,可又有了windows.h的包含问题。去掉windows.h文件又有了原来的问题merge.cpp
    c:\program files\microsoft visual studio\vc98\mfc\include\afxv_w32.h(14) : fatal error C1189: #error :  WINDOWS.H already included.  MFC apps must not #include <windows.h>
      

  9.   

    typedef   struct   tagRgnInfo{ 
    BOOL     isflag;//备用标记; 
    INT       ptcount;//该区所含的点数; 
    FLOAT       m;//该区MV均值 
    }MyRgnInfo;   //分割后各个区的一些统计信息,图像中各点所属区域的信息存放在flag数组中; ==》
    typedef   struct   tagRgnInfo{ 
    int     isflag;//备用标记; 
    int       ptcount;//该区所含的点数; 
    float       m;//该区MV均值 
    }MyRgnInfo;   //分割后各个区的一些统计信息,图像中各点所属区域的信息存放在flag数组中; 
    点击工具栏, clear project, rebuild all
      

  10.   

    谢谢楼上的各位。 问题依旧,头文件重复包含了,可找不到到底哪多了个windows.h。。