Добрый день.
Мне надо написать библиотечку на С++ для 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++' — Кодт