Страницы: 1
Господа как вывести из функции тип char* - т.е. строку ?
Функция декларирована так
/* string GetData (); */
NS_SCRIPTABLE NS_IMETHOD GetData(char **_retval) = 0; - это в .h файле интерфейса
А вот так в .Idl файле
string GetData();
Т.е. вродебы возвращать она должна строку но в реализации так не выходит
получается только вернуть NS_OK .
В реализации этой функции я обращаюсь к глобальной переменной типа static char* variables ;
которую проверяю и если все ОК то должен выдать на return .....
но вот выдать на return не удается .
Почему? непонятно .......
Отсутствует
То, что в idl и в JavaScript возвращается как результат функции, в C++ возвращается через *_retval. Результатом функции в C++ является наличие/отсутствие ошибки (т.е. надо или нет выкидывать exception) - видимо, когда делали XPCOM, плюсовые компиляторы еще плохо поддерживали родные exception-ы.
Отсутствует
Я так понял, что в return можно только макросы кидать типа NS_OK или error и.т.п.
а настоящий return это *_retval = char* например ?
Отсутствует
По сути да.
Еще по поводу строк: http://www.mozilla.org/scriptable/faq.html#i9
Отредактировано Crazy-EyE (09-04-2009 22:33:14)
Отсутствует
Страницы: 1