|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.02.2018, 18:58 | #1 |
Новичок
Джуниор
Регистрация: 01.10.2014
Сообщений: 2
|
Помогите сделать обвязку к библиотеке C#
Добрый день,
столкнулся со следующей проблемой. На C# есть библиотека, в ней есть функция Transformator.SAX.transform(MemoryS tream inStream, MemoryStream tranformStream); Как я понимаю по ее названию и описанию я могу вызвать ее из C#, но не из Си или Delphi (в принципе как и Java), я это сделать на прямую не могу. Единственным решением, как я вижу, является написать для нее библиотеку обертку в которой будет обращение к ней. В этой библиотеке единственным будет функция на экспорт (в том виде, в котором я могу вызвать ее из других языков программирования). То есть получается цепочка: Моя программа -> библиотека обертка на C# для вызова Transformator.SAX.transform -> вызов Transformator.SAX.transform в uarmCommon.Tools.dll у меня две проблемы, обыскал весь инет но еще больше запутался. 1) как объявить в библиотеке-обертке C# вызов Transformator.SAX.transform которая в uarmCommon.Tools.dll (она написана на C#). Просто через DLLImport? или тут механизм другой? 2) как мне экспортировать мою процедуру в библиотеке-обертке вида void MyFunc(PChar inStr, PChar outStr). Как я понимаю, в C# нет DLLExport. Я нашел только пакет NuGet, который вроде позволяет это сделать. Я правильно понимаю, что мне нужно установить его и воспользоваться им для экспорта функции в стандартном виде, чтобы я мог вызвать ее из других языков? Я имею ввиду этот пакет https://github.com/RobertGiesecke/MsBuild.NuGet.Pack либо этот https://www.nuget.org/packages/UnmanagedExports Использую VisualStudio. Спасибо большое за любые подсказки. А то уже долго бьюсь над этим. |
09.02.2018, 20:40 | #2 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
Насколько я понимаю, решение от Microsoft https://support.microsoft.com/ru-ru/...isual-studio-n
Оно предполагает писать на C# промежуточный COM-объект, из него дергать uarmCommon.Tools.dll, а в верхней программе что-то вроде Код:
|
13.02.2018, 16:52 | #3 |
Новичок
Джуниор
Регистрация: 01.10.2014
Сообщений: 2
|
Я сделал проще. Подцепил пакет DLLExport самый последний (который 2017-2018 года), там запускается батник, пакет собирается из Githab и предлагает прицепиться к проекту. После этого достаточно у своих методов писать [DLLExport] и все работает. проверил, из других языков нормально вызываются экспортируемые функции из C# библиотеки. Мне так было удобней. Хотя с DLLExport пришлось повозиться пока разобрался. Хотя есть видео, как пошагово все делать.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Я сделал прогу, но мне сказали сделать 2 подпрограммы. Я чет не понял как сделать. Помогите, пожалуйста! | kostyan199731 | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 25.06.2015 17:00 |
Вопрос по библиотеке. C# | PROkaZZZniK | Помощь студентам | 1 | 10.05.2012 22:26 |
вопрос по библиотеке | JIeka | Общие вопросы C/C++ | 8 | 26.08.2011 18:19 |
Ресурсы в статической библиотеке. | EUGY | Общие вопросы C/C++ | 0 | 09.07.2011 17:35 |
В библиотеке | Mika_32 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 04.04.2010 19:00 |