error C2220: warning treated as error - no 'object' file generated

c++, compiler-errors, compiler-warnings, object, project

Solution

The error says that a warning was treated as an error, therefore your problem is a warning message! The object file is then not created because there was an error. So you need to check your warnings and fix them.

In case you don't know how to find them: Open the `Error List` (`View` > `Error List`) and click on `Warning`.

Problem

I have below class ``` class Cdata12Mnt { public: char IOBname[ID1_IOB_PIOTSUP-ID1_IOB_TOP][BOADNAM_MAX + 4]; char ExIOBname[ID1_MAX_INF-ID1_EXIOB_U1TOP][BOADNAM_MAX + 4]; char cflpath[256]; char basetext[256]; UINT database[ID1_MAX_INF]; int State; public: char SelectPath[256]; public: int GetIOBName(int slt,char *Name); Cdata12Mnt(char *SelectPath); virtual ~Cdata12Mnt(); int GetValue(int id); int GetState() { return State; } }; ``` And I have function as below ``` Cdata12Mnt::Cdata12Mnt(char *SelectPath) { SCTReg reg; char buf[256], *cpnt, *npnt, *bpnt1, *bpnt2; char *startcode[] = {"CNTL_CODE ","SEGMENT "}; char *stopcode = {"END_CNTL_CODE "}; FILE *fp; int ii, infl; State = 0; for (ii = 0; ii < (ID1_IOB_PIOTSUP - ID1_IOB_TOP); ii++) { strcpy(IOBname[ii], ""); } for (ii = 0; ii < (ID1_MAX_INF-ID1_EXIOB_U1TOP); ii++) { **strcpy(ExIOBname[ii], "");** } sprintf(cflpath, "%s\\%s", SelectPath, CDATAFL); if ((fp = fopen(cflpath,"r"))!=NULL) { for (ii = 0, infl = 0; fgets(buf, 256, fp) != NULL;) { if (infl == 0 && strncmp(buf, startcode[0], strlen(startcode[0])) == 0) { if ((cpnt = strchr(&buf[strlen(startcode[0])],*startcode[1])) != NULL) { if (strncmp(cpnt,startcode[1], strlen(startcode[1])) == 0) { infl = 1; continue; } } } if (infl == 0) { continue; } if (strncmp(buf,stopcode,strlen(stopcode))==0) { if (ii == ID1_EXIOB_U1TOP) { for (int nDataNumber = ii; nDataNumber < ID1_MAX_INF; nDataNumber++) { database[nDataNumber] = 0; } } infl = 0; continue; } if (strncmp(&buf[14], " DD ", 4) == 0) { if ((cpnt=strchr(buf, ';')) != NULL) { *cpnt = '\0'; } if (ii >= ID1_IOB_TOP && ii < ID1_IOB_PIOTSUP) { if ((bpnt1 = strchr(cpnt + 1,'(')) != NULL && (bpnt2=strchr(cpnt + 1,')'))!=NULL && bpnt1 < bpnt2) { *bpnt2 = '\0'; *(bpnt1 + BOADNAM_MAX + 1) = '\0'; strcpy(IOBname[ii-ID1_IOB_TOP], bpnt1 + 1); } } if (ii >= ID1_EXIOB_U1TOP && ii < ID1_MAX_INF) { if ((bpnt1 = strchr(cpnt + 1, '(')) != NULL && (bpnt2=strchr(cpnt+1,')'))!=NULL && bpnt1 < bpnt2) { *bpnt2='\0'; *(bpnt1+BOADNAM_MAX+1)='\0'; strcpy(ExIOBname[ii-ID1_EXIOB_U1TOP], bpnt1 + 1); } } for (cpnt = &buf[18]; cpnt != NULL;) { if ((npnt=strchr(cpnt, ',')) != NULL) *npnt='\0'; } if (strchr(cpnt,'H')!=NULL) { sscanf(cpnt,"%XH",&database[ii]); } else { database[ii]=atoi(cpnt); } ii++; cpnt = npnt; if (cpnt != NULL) { cpnt++; } } } } fclose(fp); } else { State=-1; } ``` When I compile this function in Visual studio 2008, it gives me error at `strcpy(IOBname[ii],"");` as below error C2220: warning treated as error - no 'object' file generated How to fix this error?

Original source