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?
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
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With