Solved

cmqc.h compile errored in CodeGear 2009

Posted on 2008-10-29
5
1,985 Views
Last Modified: 2013-11-17
Hello,

I use C++ API for Websphere MQ v6 to manipulate message in a queue. I have included all the necessary header files in my C++ project. I use CodeGear 2009 C++ builder as my development IDE.

below are the error messages i received when the code is compiled:

[BCC32 Error] cmqc.h(2287): E2257 , expected
[BCC32 Error] cmqc.h(2288): E2238 Multiple declaration for '_int64'
[BCC32 Error] cmqc.h(2287): E2344 Earlier declaration of '_int64'
[BCC32 Error] cmqc.h(2288): E2257 , expected
[BCC32 Error] cmqc.h(2294): E2257 , expected
[BCC32 Error] cmqc.h(2295): E2257 , expected
[BCC32 Error] cmqc.h(2301): E2257 , expected
[BCC32 Error] cmqc.h(2302): E2257 , expected

Kindly give me some hints of what cause the problem.


Thanks,
mrpc_cambodia
/* ***************************************************************** */

/*                                                                   */

/* Module Name: msgExits.cpp                                         */

/*                                                                   */

/* Descriptive Name: WDI Adapter / WDI Server sample exits           */

/*                                                                   */

/* Release Level: Version 3, Release 2, Modification Level 1         */

/*                                                                   */

/* Licensed Materials -                                              */

/*   Property of IBM 5655-G99 (c) Copyright IBM Corp. 1989, 2006     */

/*                                                                   */

/* Function: Illustrates the function signature for the Adapter API  */

/* Change Activity:                                                  */

/* Date     PTR/DCR#   Name/ID  Description                          */

/* ======== ========== ======== =====================================*/

/* 02/28/05 P8010301   lwhitak    Create module                      */

/* ======== ========== ======== =====================================*/
 

#include <stdio.h>

#include <string.h>
 

#include "imqi.hpp"     /* WMQ definitions in Cpp */
 

#include "diapi.h"      /* WDI interface objects */

#include "msgExits.h"   /* WDIAdapter constants and protptypes */
 
 

/* ***************************************************************** */

/* ***************************************************************** */

extern "C" __declspec(dllexport) BOOL msgTrigger(const MQTMC2 *triggerMsg, void *pvExitContext)

{

    ImqQueueManager *QM = (ImqQueueManager*)pvExitContext;

    

    printf("Executing exit msgTrigger.  Queue Manager:%s\n",

        (char*)QM->name());

    fflush(stdout);

    

    return(FALSE);   /* do not terminate */

}
 
 

/* ***************************************************************** */

/* ***************************************************************** */

extern "C" __declspec(dllexport) BOOL msgArrival(void *pvExitContext, char *sessionID)

{

    ImqMessage *imsgIn = (ImqMessage *)pvExitContext;

    

    printf("Executing exit msgArrival.  Message forrmat: %s\n",

        (char*)imsgIn->format());

    fflush(stdout);

    

    return(FALSE);   /* do not terminate */

}
 
 

/* ***************************************************************** */

/* ***************************************************************** */

extern "C" __declspec(dllexport) int msgTransform(void *pvExitContext, long rc, long ccbrc, long ccberc)

{

    CSyncTranslator *cTr = (CSyncTranslator*)pvExitContext;
 

    char *pcPrtfile;

    long lCharcnt;
 

    cTr->GetFileName(&pcPrtfile, "PRTFILE", &lCharcnt);
 

    printf("Executing exit msgTransform.  RC: %d ERC:%d\n", ccbrc, ccberc);

    printf("\t%ld characters written to print file (%s)\n", 

        lCharcnt, pcPrtfile);

    fflush(stdout);

    

    if (ccbrc > 8 || (ccbrc == 8 && ccberc > 12)) {

        /* rollback resources and process next message */

        return(CONTINUE);

    }

    else {

        /* commit all work for any condition code 8 or less */

        return(SYNC_CONTINUE);

    }

}
 
 

/* ***************************************************************** */

/* ***************************************************************** */

extern "C" __declspec(dllexport) BOOL msgTerminate(void *pvExitContext)

{

   printf("Executing exit msgTerminate.\n");

   fflush(stdout);

   return(TRUE);

}

Open in new window

0
Comment
Question by:mrpc_cambodia
  • 2
  • 2
5 Comments
 
LVL 5

Expert Comment

by:lgacs
ID: 22839327
The line 2287 in include file contains:
 typedef _int64 MQINT64;

Investigate, how your environment defined "_int64" type.
Also check whether the 32 vs 64 bit setting for your compiler is correct ?
0
 

Author Comment

by:mrpc_cambodia
ID: 22839443
This problem is resolved once i change from _int64 to __int64.

but now i run into another problem:

[ILINK32 Error] Error: Unresolved external 'ImqStr::~ImqStr()' referenced from D:\RAD STUDIO\PROJECTS\MSGEXITS\DEBUG\MSGEXITS.OBJ
[ILINK32 Error] Error: Unresolved external 'ImqItm::~ImqItm()' referenced from D:\RAD STUDIO\PROJECTS\MSGEXITS\DEBUG\MSGEXITS.OBJ
[ILINK32 Error] Error: Unresolved external 'ImqErr::~ImqErr()' referenced from D:\RAD STUDIO\PROJECTS\MSGEXITS\DEBUG\MSGEXITS.OBJ
[ILINK32 Error] Error: Unresolved external 'ImqObj::name()' referenced from D:\RAD STUDIO\PROJECTS\MSGEXITS\DEBUG\MSGEXITS.OBJ
[ILINK32 Error] Error: Unresolved external 'ImqMsg::format() const' referenced from D:\RAD STUDIO\PROJECTS\MSGEXITS\DEBUG\MSGEXITS.OBJ
[ILINK32 Error] Error: Unresolved external 'CSyncTranslator::GetFileName(char * *, char *, long *)' referenced from D:\RAD STUDIO\PROJECTS\MSGEXITS\DEBUG\MSGEXITS.OBJ

I know it need to configure my ide to reference a library somewhere. but i dont what library do i need to fix this error?


Thanks,

mrpc_cambodia
0
 
LVL 5

Expert Comment

by:lgacs
ID: 22840969
0
 
LVL 16

Accepted Solution

by:
George Tokas earned 125 total points
ID: 23046322
>>I have included all the necessary header files in my C++ project
You didn't....
The library file(s) with the code for those errors aren't included....
Check the link from the previous post...

George Tokas.
0
 

Author Closing Comment

by:mrpc_cambodia
ID: 31511547
Thanks, You're right I have to include the header and the lib file to compile successfully.

mrpc_cambodia
0

Featured Post

Ransomware-A Revenue Bonanza for Service Providers

Ransomware – malware that gets on your customers’ computers, encrypts their data, and extorts a hefty ransom for the decryption keys – is a surging new threat.  The purpose of this eBook is to educate the reader about ransomware attacks.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Batch convert .doc to .docx 13 188
Peachtree 2012 Help 2 61
software license audit 6 57
suggestion for PC desktop software to send PayPal mass payments 2 35
I annotated my article on ransomware somewhat extensively, but I keep adding new references and wanted to put a link to the reference library.  Despite all the reference tools I have on hand, it was not easy to find a way to do this easily. I finall…
Workplace bullying has increased with the use of email and social media. Retain evidence of this with email archiving to protect your employees.
The viewer will learn how to synchronize PHP projects with a remote server in NetBeans IDE 8.0 for Windows.
The viewer will learn how to use and create new code templates in NetBeans IDE 8.0 for Windows.

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

25 Experts available now in Live!

Get 1:1 Help Now