【求】]高手来看看我哪出错了 ,UG二次开发的代码

时间:2023-01-28 08:53:30
/*****************************************************************************
**
** NX8_Open1.c
**
** Description:
**     Contains Unigraphics entry points for the application.
**
*****************************************************************************/

/* Include files */
#include <stdio.h>
#include <uf.h>
#include <uf_ui.h>
#include "stdio.h"
#include "math.h"
#include "string.h"
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
FILE*fp;
int i,gcode;
char fname[14],gvalue[65];
float xs[100],ys[100],zs[100],xe[100],ye[100],ze[100];


static int report_error( char *file, int line, char *call, int irc)
{
    if (irc)
    {
        char err[133],
             msg[133];

        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
            irc, line, file);
        UF_get_fail_message(irc, err);

        UF_print_syslog(msg, FALSE);
        UF_print_syslog(err, FALSE);
        UF_print_syslog("\n", FALSE);
        UF_print_syslog(call, FALSE);
        UF_print_syslog(";\n", FALSE);

        if (!UF_UI_open_listing_window())
        {
            UF_UI_write_listing_window(msg);
            UF_UI_write_listing_window(err);
            UF_UI_write_listing_window("\n");
            UF_UI_write_listing_window(call);
            UF_UI_write_listing_window(";\n");
        }
    }

    return(irc);
}

int scanline()
{
printf("Enter DXF file name:");
    scanf("%s",fname);
strcat(fname,".dxf");
fp=fopen(fname,"r");
do
{
 fscanf(fp,"%d",&gcode);
     fscanf(fp,"%s",gvalue);
}
while(gcode!=2||strcmp(gvalue,"ENTITIES")!=0);
do
{
fscanf(fp,"%d",&gcode);
fscanf(fp,"%s",gvalue);
if(gcode==0&&strcmp(gvalue,"LINE")==0)outline();
}
while(gcode!=0||strcmp(gvalue,"ENDSEC")!=0);
fclose(fp);
    return 0;
}
int outline()
{
do{fscanf(fp,"%d",&gcode);
if(gcode==10)
{i=i+1;
fscanf(fp,"%f",&xs[i]);
}
else
fscanf(fp,"%s",gvalue);
}while(gcode!=10);
fscanf(fp,"%d",&gcode);
fscanf(fp,"%f",&ys[i]);
fscanf(fp,"%d",&gcode);
fscanf(fp,"%f",&zs[i]);
fscanf(fp,"%d",&gcode);
fscanf(fp,"%f",&xe[i]);
fscanf(fp,"%d",&gcode);
fscanf(fp,"%f",&ye[i]);
fscanf(fp,"%d",&gcode);
fscanf(fp,"%f",&ze[i]);
return 0;

}

/*****************************************************************************
**  Activation Methods
*****************************************************************************/
/*  Unigraphics Startup
**      This entry point activates the application at Unigraphics startup */
extern DllExport void ufsta( char *param, int *returnCode, int rlen )
{
    /* Initialize the API environment */
    if( UF_CALL(UF_initialize()) ) 
    {
        /* Failed to initialize */
        return;
    }
    
    /* TODO: Add your application code here */
void main ()
{
int n;
    i=0;
    scanline();
    printf("Enter data file name:");
scanf("%s",fname);
    fp=fopen(fname,"w");
    fprintf(fp,"%d\n",i);
for(n=1;n<=i;n++)
{       
  fprintf(fp,"%f,%f,%f\n",xs[n],ys[n],zs[n]);
  fprintf(fp,"%f,%f,%f\n",xe[n],ye[n],ze[n]);
    }
fclose(fp);
}

    /* Terminate the API environment */
    UF_CALL(UF_terminate());
}

/*****************************************************************************
**  Utilities
*****************************************************************************/

/* Unload Handler
**     This function specifies when to unload your application from Unigraphics.
**     If your application registers a callback (from a MenuScript item or a
**     User Defined Object for example), this function MUST return
**     "UF_UNLOAD_UG_TERMINATE". */
extern int ufusr_ask_unload( void )
{
    return( UF_UNLOAD_UG_TERMINATE );
}
下面是错误显示
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(113): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(122): error C2065: “n”: 未声明的标识符
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(122): error C2065: “n”: 未声明的标识符
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(122): error C2065: “n”: 未声明的标识符
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(124): error C2065: “n”: 未声明的标识符
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(124): error C2065: “n”: 未声明的标识符
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(124): error C2065: “n”: 未声明的标识符
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(125): error C2065: “n”: 未声明的标识符
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(125): error C2065: “n”: 未声明的标识符
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(125): error C2065: “n”: 未声明的标识符
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(131): error C2143: 语法错误 : 缺少“)”(在“字符串”的前面)
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(131): error C2143: 语法错误 : 缺少“)”(在“字符串”的前面)
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(131): error C2143: 语法错误 : 缺少“{”(在“字符串”的前面)
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(131): error C2059: 语法错误:“<未知>”
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(132): error C2059: 语法错误:“}”

2 个解决方案

#1


main函数前面丢了一个右大括号

#2


偶遇到类似问题都是用
“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。

#1


main函数前面丢了一个右大括号

#2


偶遇到类似问题都是用
“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。