You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by Dushshantha Chandradasa <dc...@virtusa.com> on 2005/10/06 05:54:47 UTC

MultiOut wrapper code cannot be compiled.

Hi All,

 

I noticed that the service code for the test MultiOut cannot be
compiled. It gives the following error message.

 

MultiOutWrapper.cpp

MultiOutWrapper.cpp(90) : error C2440: 'type cast' : cannot convert from
'double

' to 'void *'

        There is no context in which this conversion is possible

MultiOutWrapper.cpp(91) : error C2440: 'type cast' : cannot convert from
'float'

 to 'void *'

        There is no context in which this conversion is possible

MultiOutWrapper.cpp(92) : error C2440: 'type cast' : cannot convert from
'double

' to 'void *'

        There is no context in which this conversion is possible

Generating Code...

 

The code snippet where the error occurs is follows.

 

 

int MultiOutWrapper::get(void* pMsg)

{

            IMessageData* mc = (IMessageData*)pMsg;

            int nStatus;

            IWrapperSoapSerializer* pIWSSZ = NULL;

            mc->getSoapSerializer(&pIWSSZ);

            if (!pIWSSZ) return AXIS_FAIL;

            IWrapperSoapDeSerializer* pIWSDZ = NULL;

            mc->getSoapDeSerializer(&pIWSDZ);

            if (!pIWSDZ) return AXIS_FAIL;

            /* check whether we have got correct message */

            if (AXIS_SUCCESS != pIWSDZ->checkMessageBody("get0",
"http://localhost/axis/MultiOut")) return AXIS_FAIL;

            pIWSSZ->createSoapMethod("get",
"http://localhost/axis/MultiOut");

            if (AXIS_SUCCESS != (nStatus = pIWSDZ->getStatus())) return
nStatus;

            xsd__string out0;

            xsd__integer out1;

            xsd__int out2;

            xsd__long out3;

            xsd__short out4;

            xsd__decimal out5;

            xsd__float out6;

            xsd__double out7;

            xsd__boolean out8;

            xsd__byte out9;

            try

            {

 
pWs->get(&out0,&out1,&out2,&out3,&out4,&out5,&out6,&out7,&out8,&out9);

            pIWSSZ->addOutputParam("out1", (void*)out0, XSD_STRING);

            pIWSSZ->addOutputParam("out14", (void*)out1, XSD_INTEGER);

            pIWSSZ->addOutputParam("out15", (void*)out2, XSD_INT);

            pIWSSZ->addOutputParam("out16", (void*)out3, XSD_LONG);

            pIWSSZ->addOutputParam("out17", (void*)out4, XSD_SHORT);

            ------->//pIWSSZ->addOutputParam("out18", (void*)out5,
XSD_DECIMAL);

            ------->//pIWSSZ->addOutputParam("out19", (void*)out6,
XSD_FLOAT);

            ------->//pIWSSZ->addOutputParam("out20", (void*)out7,
XSD_DOUBLE);

            pIWSSZ->addOutputParam("out21", (void*)out8, XSD_BOOLEAN);

            pIWSSZ->addOutputParam("out22", (void*)out9, XSD_BYTE);

            return AXIS_SUCCESS;

            }

            catch(...){

            }

}

 

Few days back, I fixed some issues related to this test and was able to
get the test running properly. Yesterday evening I notice this problem.
Any clues??

 

Regards,

 

Marcus Dushshantha Chandradasa

Team Virtusa

dchadradasa@virtusa.com

 


Re: MultiOut wrapper code cannot be compiled.

Posted by Samisa Abeysinghe <sa...@gmail.com>.
I think it has to be
pIWSSZ->addOutputParam("out18", (void*)&out5, XSD_DECIMAL);
note the extra '&' in front of out5

Thanks,
Samisa...

Dushshantha Chandradasa wrote:

> Hi All,
>
>  
>
> I noticed that the service code for the test MultiOut cannot be 
> compiled. It gives the following error message.
>
>  
>
> MultiOutWrapper.cpp
>
> MultiOutWrapper.cpp(90) : error C2440: 'type cast' : cannot convert 
> from 'double
>
> ' to 'void *'
>
>         There is no context in which this conversion is possible
>
> MultiOutWrapper.cpp(91) : error C2440: 'type cast' : cannot convert 
> from 'float'
>
>  to 'void *'
>
>         There is no context in which this conversion is possible
>
> MultiOutWrapper.cpp(92) : error C2440: 'type cast' : cannot convert 
> from 'double
>
> ' to 'void *'
>
>         There is no context in which this conversion is possible
>
> Generating Code...
>
>  
>
> The code snippet where the error occurs is follows.
>
>  
>
>  
>
> int MultiOutWrapper::get(void* pMsg)
>
> {
>
>             IMessageData* mc = (IMessageData*)pMsg;
>
>             int nStatus;
>
>             IWrapperSoapSerializer* pIWSSZ = NULL;
>
>             mc->getSoapSerializer(&pIWSSZ);
>
>             if (!pIWSSZ) return AXIS_FAIL;
>
>             IWrapperSoapDeSerializer* pIWSDZ = NULL;
>
>             mc->getSoapDeSerializer(&pIWSDZ);
>
>             if (!pIWSDZ) return AXIS_FAIL;
>
>             /* check whether we have got correct message */
>
>             if (AXIS_SUCCESS != pIWSDZ->checkMessageBody("get0", 
> "http://localhost/axis/MultiOut")) return AXIS_FAIL;
>
>             pIWSSZ->createSoapMethod("get", 
> "http://localhost/axis/MultiOut");
>
>             if (AXIS_SUCCESS != (nStatus = pIWSDZ->getStatus())) 
> return nStatus;
>
>             xsd__string out0;
>
>             xsd__integer out1;
>
>             xsd__int out2;
>
>             xsd__long out3;
>
>             xsd__short out4;
>
>             xsd__decimal out5;
>
>             xsd__float out6;
>
>             xsd__double out7;
>
>             xsd__boolean out8;
>
>             xsd__byte out9;
>
>             try
>
>             {
>
>             
> pWs->get(&out0,&out1,&out2,&out3,&out4,&out5,&out6,&out7,&out8,&out9);
>
>             pIWSSZ->addOutputParam("out1", (void*)out0, XSD_STRING);
>
>             pIWSSZ->addOutputParam("out14", (void*)out1, XSD_INTEGER);
>
>             pIWSSZ->addOutputParam("out15", (void*)out2, XSD_INT);
>
>             pIWSSZ->addOutputParam("out16", (void*)out3, XSD_LONG);
>
>             pIWSSZ->addOutputParam("out17", (void*)out4, XSD_SHORT);
>
>             -----à//pIWSSZ->addOutputParam("out18", (void*)out5, 
> XSD_DECIMAL);
>
>             -----à//pIWSSZ->addOutputParam("out19", (void*)out6, 
> XSD_FLOAT);
>
>             -----à//pIWSSZ->addOutputParam("out20", (void*)out7, 
> XSD_DOUBLE);
>
>             pIWSSZ->addOutputParam("out21", (void*)out8, XSD_BOOLEAN);
>
>             pIWSSZ->addOutputParam("out22", (void*)out9, XSD_BYTE);
>
>             return AXIS_SUCCESS;
>
>             }
>
>             catch(...){
>
>             }
>
> }
>
>  
>
> Few days back, I fixed some issues related to this test and was able 
> to get the test running properly. Yesterday evening I notice this 
> problem. Any clues??
>
>  
>
> Regards,
>
>  
>
> Marcus Dushshantha Chandradasa
>
> Team Virtusa
>
> dchadradasa@virtusa.com <ma...@virtusa.com>
>
>  
>