У меня есть затемнение, и я новичок в C++ и CORBA. Я пытаюсь назначить CORBA :: Char, но получаю ошибку компилятора «Ошибка: неверное преобразование из« CORBA :: Char * »в« CORBA: Char ». У кого-нибудь есть идея, что случилось с моим кодом и как написать это исправитьНеверное преобразование из CORBA :: Char * в CORBA :: Char
Благодаря Саймон
class Medium_impl : virtual public POA_Media::Medium {
public:
CORBA::Char gettype();
void settype(CORBA::Char);
private:
CORBA::Char type;
};
Medium_impl::Medium_impl (char* _oidstr) {
type='V';
}
void Medium_impl::settype(CORBA::Char _type){
type = _type;
}
CORBA::Char Medium_impl::gettype(){
return type;
}
Я получаю ошибку в Ареф тест-Methode -> SetType (тип [я]);?!
void Mediathek_impl::test (void) {
CORBA::Char type[10][1];
strcpy(type[0],"V");
for(int i = 0; i<=9;i++){
char oidstr[20];
sprintf(oidstr,"medium_%d.acc",count);
PortableServer::ObjectId_var tmpoid=PortableServer::string_to_ObjectId(oidstr);
CORBA::Object_var obj = mypoa->create_reference_with_id (tmpoid,"IDL:Medium:1.0");
::Media::Medium_ptr aref = ::Media::Medium::_narrow (obj);
assert (!CORBA::is_nil (aref));
oid[count] = mypoa->reference_to_id(aref);
//here I get the Compiler-error
aref ->settype(type[i]);
count ++;
}
Вы массив (который распадается на указатель), когда она принимает характер. – chris
Что не так * с вашим кодом - это именно то, о чем говорится в сообщении об ошибке: вы пытаетесь сохранить указатель char в char. Как исправить это зависит от того, что вы на самом деле хотите сделать. Вы не объяснили, что вы на самом деле пытаетесь сделать * * – jalf
. Языковое сопоставление IDL на C++ 11 проще изучить, чем сопоставление языков IDL с C++, проверьте http://swsupport.remedy.nl для получения дополнительной информации. подробности и как получить лицензию на оценку для TAOX11 –