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>
>
>
>