Undeclared Identifier in CALLMAP

BBritain

VIP Member
Hi C gurus,

I always thought I could write C functions and therefore NERs were a no brainer......until now.

Applications Release: E900 Tools: 8.98.31

I have an NER that compiles with zero errors and zero warnings UNTIL I add a call to the C business function B0400010 - F0411 Get Next Pay Item. When I add this function and compile, I get the errors:
*************Error Start
NQ950495.c
c:\e900\DV900\source\NQ950495.c(104) : error C2065: 'IDERRmnDocVoucherInvoicee_1' : undeclared identifier
c:\e900\DV900\source\NQ950495.c(104) : warning C4204: nonstandard extension used : non-constant aggregate initializer
jdertdll.c

Adjusting DLL load addresses . . .
*************Error End

So I thought, no problem - I'll just go and recompile the C business function B0400010. It compiles without error. Not the issue.

Then I went into the NER source (C) code and found the offending statement.

********************Statement Start
#define NUMMAP_28 3
CALLMAP cmErrorMap_28[NUMMAP_28] = {
{ IDERRmnDocVoucherInvoicee_2 , IDERRmnDocVoucherInvoicee_1 } ,
{ IDERRszDocumentType_3 , IDERRszDocumentType_2 } ,
{ IDERRszCompanyKey_1 , IDERRszCompanyKey_3 } };
********************Statement End

I noticed that the left arguments matched the parameters in my NER and the right parameters ALMOST matched the parameters in the called C function except that the C definitions didn't have the _1, 2, or 3 at the end of the label:


***********************NER .h Start
#define IDERRszCompanyKey_1 1L
#define IDERRmnDocVoucherInvoicee_2 2L
#define IDERRszDocumentType_3 3L
***********************NER .h End

***********************C .h Start
#define IDERRmnDocVoucherInvoicee 1L
#define IDERRszDocumentType 2L
#define IDERRszCompanyKey 3L
***********************C .h End

My suspicion is that the C function was compiled when there was a different standard in defining the IDERR values. Can anyone help?

Ben again,
 

Attachments

  • nq950495.zip
    12.2 KB · Views: 16
Last edited:
Back
Top