Страницы: 1
Есть такой обычный пример интерфейса
#include "nsISupports.idl" [scriptable, uuid(911d170a-15dd-4e05-b1fa-da7a740b58fd)] interface IMyComponent : nsISupports { long Add(in long a, in long b); };
и xpidl из Gecko SDK (1.9.2) без ошибок генерирует заголовочный файл.
xpidl -m header -I C:\Gecko_SDK\gecko_1.9.2\idl IMyComponent.idl
А мне надо передать XPCOM компоненту строку.
В расширении для firefox (JavaScript) это var string='Какой-то текст из формы'
На C++ подошел бы тип char [4000]
В idl файле пишу так:
char * get_string (in char stri[4000]);
Т.е входной параметр некая строка, и возвращать эта функция будет тоже строку.
xpidl выдает еррор ** WARNING **: Parse of IMyComponent.idl failed
И никаких подробностей.
Подскажите, пожалуйста, какие типы можно использовать и где про это почитать!
Отсутствует
Bolopak
Использовать типы а-ля LPTSTR/LPCTSTR не пробовали? У вас же target platform - WINNTx86, насколько я понял? Поскольку вы собираетесь передавать "текст из формы", то он с большой вероятностью будет юникодным, и с типом char* вам понадобится куча дополнительных преобразований. Не знаю, как это выглядит в случае маршалинга XPCOM<->JS, но при маршалинге platform api<->JS через ctypes.jsm достаточно правильно указать типы параметров, а преобразования unicode/non-unicode делаются на лету.
Отредактировано hydrolizer (25-02-2011 06:12:14)
Отсутствует
AString get_string (in AString stri); => NS_IMETHOD get_string(const nsAString & stri, nsAString & _retval);
https://developer.mozilla.org/en/XPCOM_string_guide
Отсутствует
Использовать типы а-ля LPTSTR/LPCTSTR не пробовали?
Та же ошибка странная возникает
.\IMyComponent.idl:7: `LPCTSTR' undeclared identifier
** WARNING **: Parse of IMyComponent.idl failed
#include "nsISupports.idl" [scriptable, uuid(911d170a-15dd-4e05-b1fa-da7a740b58fd)] interface IMyComponent : nsISupports { //long Add(in long a, in long b); LPCTSTR Add (in LPCTSTR a); };
Добавлено 25-02-2011 21:35:53
Код:AString get_string (in AString stri); => NS_IMETHOD get_string(const nsAString & stri, nsAString & _retval);https://developer.mozilla.org/en/XPCOM_string_guide
Спасибо большое!
Отредактировано Bolopak (25-02-2011 21:34:16)
Отсутствует
Страницы: 1