Внешняя компонента для 1С на С++
От: Аноним  
Дата: 08.05.07 06:48
Оценка:
Добрый день.
Мне надо написать библиотечку на С++ для 1Ски.
Пока что я пытаюсь организовать обмен данными между 1С и DLL.
Передавать параметры в DLL получается только Строки и числа — это оказалось наиболее просто.
Передавать из DLL в 1С получается только числа. Сейчас бьюсь над строками.
Для передачи строки из 1С используется тип BSTR.
STDMETHODIMP LogData::Printf(BSTR *str)

интерфейс
[id(1), helpstring("method Printf")] HRESULT Printf([in] BSTR* str);

тут все ок.
А вот функция, возвращающая версию библиотеки в 1С

STDMETHODIMP LogData::GetVersion(BSTR *Ver)
{
  *Ver = m_version.bstr_ptr();
  return S_OK;
}

интерфейс
[id(6), helpstring("method GetVersion")] HRESULT GetVersion([out, retval] BSTR* Ver);

в 1С её вызов таков
В = СоздатьОбъект("Reg.LogData");
Стр = В.GetVersion();

на момент получения версии 1С выдает сообщение "Out of memory" и наглухо виснет.

Подскажите, плиз, как правильно вернуть строку из библиотеки в 1С?




08.05.07 14:53: Перенесено модератором из 'C/C++' — Кодт
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.