Hi Marcel,
Almost done. 2 warnings left in 32bit LE, BE and 64bit LE. I'm just not sure of the code used here in dgate.cpp:
static ExtendedPDU_Service ForwardPDU[MAXExportConverters][MAXExportConverters]; // max 20*20 with remaining association
// This looks like a 2 dimensional array of ExtendedPDU_Service or a ***ForwardPDU handle
*q = new_queue(QueueSize, 1536, 100, exportprocessN, N>=MAXExportConverters ? NULL : ForwardPDU[N], 0);
// Here it is used as a 1 dimensional array ExtendedPDU_Service or a **ForwardPDU handle
struct conquest_queue *new_queue(int num, int size, int delay, BOOL (*process)(char *, ExtendedPDU_Service *PDU, char *), ExtendedPDU_Service *PDU, int maxfails)
// And here it is ExtendedPDU_Service pointer *PDU or used as called.
Is it one or two dimensional?
I'm I missing the obvious?
Also we are creating 400 "ExtendedPDU_Service" classes as a global each time dgate is run. It is only used in export_queueN(), Could it be a local static or a global pointer made when needed?
When I am done, I would like to do the merge with your current version and send it back to you for you to look at. There are a lot of changes in code, but almost none in function. For example, OperatorConsole is changed from a global Debug to a *Debug and constructed in main. This changes OperatorConsole.printf() to OperatorConsolePtr->printf(), no real change in function, but a lot of change in code (thanks to find and replace). I also added strnlen(const char*, max), strlen32(const char*) and strlen32u(const char*) as very safe versions with the correct return sizes in 64 bit.
Bruce