Полезная информация

Общайтесь со знакомыми и друзьями в нашем сообществе в Facebook.

№109-04-2009 15:43:25

alex171069
Участник
 
Группа: Members
Зарегистрирован: 16-01-2009
Сообщений: 26
UA: Firefox 3.0

return

Господа как вывести из функции тип char* - т.е. строку  ?
Функция декларирована так
     /* string GetData (); */
  NS_SCRIPTABLE NS_IMETHOD GetData(char **_retval) = 0;  - это в .h файле интерфейса
А вот так в .Idl файле
                 string GetData();     

Т.е. вродебы возвращать она должна строку но в реализации так не выходит
   получается только вернуть NS_OK .
В реализации этой функции я обращаюсь к глобальной переменной типа static char* variables    ;
                                                                          которую проверяю  и если все ОК то должен выдать на return .....
                                                                        но вот выдать на return не удается .
              Почему? непонятно .......

Отсутствует

 

№209-04-2009 16:07:55

Crazy-EyE
Участник
 
Группа: Members
Зарегистрирован: 20-06-2008
Сообщений: 81
UA: Firefox 3.0

Re: return

То, что в idl и в JavaScript возвращается как результат функции, в C++ возвращается через *_retval. Результатом функции в C++ является наличие/отсутствие ошибки (т.е. надо или нет выкидывать exception) - видимо, когда делали XPCOM, плюсовые компиляторы еще плохо поддерживали родные exception-ы.

Отсутствует

 

№309-04-2009 16:19:33

alex171069
Участник
 
Группа: Members
Зарегистрирован: 16-01-2009
Сообщений: 26
UA: Firefox 3.0

Re: return

Я так понял, что в return можно только макросы кидать типа NS_OK или error и.т.п.
  а настоящий return это   *_retval = char* например ?

Отсутствует

 

№409-04-2009 22:32:56

Crazy-EyE
Участник
 
Группа: Members
Зарегистрирован: 20-06-2008
Сообщений: 81
UA: Firefox 3.0

Re: return

По сути да.

Еще по поводу строк: http://www.mozilla.org/scriptable/faq.html#i9

Отредактировано Crazy-EyE (09-04-2009 22:33:14)

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]