• Introducing Dark Mode! Switch by clicking on the lightbulb icon next to Search or by clicking on Default style at the bottom left of the page!

Warning message of Macro Redefinition

Hi folks,

I have created custom NER for Automatic Payment Update functionality. I have used two standard BSFN ( B0400204 and X04573 ) in custom NER. When I'm building this custom NER at that time it is giving warning message of "Macro Redefinition" as below. Can any one suggest how to remove this warning message.

Warning message:-
N55TST.c
C:\E910\DV910\include\b0400204.h(106) : warning C4005: 'IDERRmnApcheckprintselection' : macro redefinition
C:\E910\DV910\include\x04573.h(102) : see previous definition of 'IDERRmnApcheckprintselection'
Replacing N55TST.obj
jdertdll.c
Creating library C:\E910\DV910\lib32\CALLBSFN.lib and object C:\E910\DV910\lib32\CALLBSFN.exp
Microsoft (R) Manifest Tool version 5.2.3790.2076
Copyright (c) Microsoft Corporation 2005.
All rights reserved.

Adjusting DLL load addresses . . .


************Build Finished************

CALLBSFN.dll - 0 error(s), 1 warning(s): Built successfully.


PS :- I have tried changing parent DLL but still its giving error.

Thanks in advance.
 

David Robertson

Reputable Poster
Both B0400204.h and X04573.h contain definitions for IDERRmnApcheckprintselection.
This apears to be a bug in B400204.h, at least on my system:

#define DATASTRUCTURE_D0400204
typedef struct tagDSD0400204
MATH_NUMERIC mnPaymentgroupcontrolnbr; /* Payment Group Control Nbr - A/P Checks */
MATH_NUMERIC mnCkcontrolnoapch; /* Check Control Number - A/P Checks */
MATH_NUMERIC mnApcheckprintselection; /* A/P Check Print Selection Number */
JCHAR cPrintUpdate; /* Print Or Update */
} DSD0400204, FAR *LPDSD0400204;
#define IDERRmnPaymentgroupcontrolnbr 1L
#define IDERRmnCkcontrolnoapch 2L
#define IDERRcPrintUpdate 3L
#define IDERRmnApcheckprintselection 4L

should be:
#define DATASTRUCTURE_D0400204
typedef struct tagDSD0400204
{
MATH_NUMERIC mnPaymentgroupcontrolnbr;
MATH_NUMERIC mnCkcontrolnoapch;
MATH_NUMERIC mnApcheckprintselection;
JCHAR cPrintUpdate;
} DSD0400204 , *LPDSD0400204;

#define IDERRmnPaymentgroupcontrolnbr_1 1L
#define IDERRmnCkcontrolnoapch_2 2L
#define IDERRmnApcheckprintselection_4 4L
#define IDERRcPrintUpdate_5 5L
 
Last edited:
Hi David,

I don't think its a bug particular to your system, because I have checked same file in my system and its having same definition as your. Do you think by manually changing it as suggested by you it will work ?

Thanks in advance !!
 

David Robertson

Reputable Poster
Go into OMW and select D0400204 for design, "Design Tools" tab, and select "Create a type definition". This will place the definition in the clipboard (and create a D0400204.h in E9.1).


Open B0400204.h and paste in the clipboard, and remove the old definition, between and including these lines:
/**
* TYPEDEF for Data Structure
* D0400204 : Update Print/Update Selection Number (PSEL)
.
.
.
#endif /* DATASTRUCTURE_D0400204 */

Then build, test etc..
 
Top