Как добавить маршалинг строки в функцию библиотеки, которая добавлена через reference?

180
25 мая 2018, 06:40

У меня подключена библиотека (неуправляемая) через reference

    using TPLib;

и успешно с ней работаю с англоязычным текстом. Сейчас нужно добавить поддержку русского (кодировка нужная со слов разработчика 1251, но в документации BSTR)

Поэтому я дополнительно вытаскиваю из нее нужную функцию но с маршалингом строки

    [DllImport("TPLib.dll")]
    private static extern TABase ProcessText([MarshalAs(UnmanagedType.BStr)] string text)

Но для работоспособности этой функции нужен внутренний элемент класса TPLib, который у меня не получается достать с помощью DLLImport. (Если я при using TPLib сделаю этот dllimport, функция с маршалингом не используется, а дефолтная)

Есть ли способ добавить маршалинг избегая DLLImport?

Алсо - нужно ли при маршалинге что-то делать перед отправкой string в функцию? Или просто передать ему читаемую в Unicode строку, и он сам ее подгонит под нужную кодировку?

В документации функция выглядит так

HRESULT ProcessText(BSTR text, [out, retval] IDispatch** pIBase,);

READ ALSO
Медиа запросы bootstrap4 для sass

Медиа запросы bootstrap4 для sass

Помогите разобраться в медиа запросахЧитаю инструкцию на этой страничке:

224
В чем моя ошибка при работе с объектами?

В чем моя ошибка при работе с объектами?

Когда вызываю объект, то значения не выводятсяМожет синтаксическая ошибка?

172
Проверить соседние элементы массива

Проверить соседние элементы массива

помогите советом, как найти соседние элементы по горизонтали и вертикалиК примеру: findClaster(8, 3) равно 2

189
Заменить часть многомерного массива

Заменить часть многомерного массива

Дано массив, нужно заменить окруженные значения пример на картинке:

179