|
Подключение к внешней dll .NET/c#
|
|||
---|---|---|---|
#18+
Добрый день! Необходимо реализовать получение сообщений из RabbitMQ в FoxPro Используется: Visual FoxPro 6. Windows 7 x64 VS 2015 Для подключения тестирую компоненту для .Net Framework. Она имеет com-интерфейс проект https://github.com/rabbitmq/rabbitmq-dotnet-client Для сборки использована версия проекта rabbitmq-dotnet-client-rabbitmq_v3_7_0_milestone6 В свойствах проекта VisualStudio 2015 установил признак: "Register for COM interop" Скомпилировал библиотеку RabbitMQ.Client.dll Регистрация с использованием regasm.exe успешно проходит (все типы зарегистрированы) Но никак не удается вызвать зарегистрированную библиотеку RabbitMQ.Client.dll из FoxPro local RQ SET OLEOBJECT ON RQ = createObject('RabbitMQ.Client') При создании объекта ошибка поиска класса (class definition is not found) Пробовал создать тестовый проект http://aakinshin.net/ru/blog/post/wrap-cs-in-com/ Fox так же не видит dll Есть ли возможность использования .dll на С# в FoxPro? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2018, 23:47 |
|
Подключение к внешней dll .NET/c#
|
|||
---|---|---|---|
#18+
11cergeyВ свойствах проекта VisualStudio 2015 установил признак: "Register for COM interop" Скомпилировал библиотеку RabbitMQ.Client.dllС какаой разрядностью целевой платформы? Надеюсь, Win32?Но никак не удается вызвать зарегистрированную библиотеку RabbitMQ.Client.dll из FoxProИ не получится. При создании объекта ошибка поиска класса (class definition is not found)Сие сообщение выдается при отсутствии в реестре винды записи о реализованном вашей dll СОМ интерфейсе. 32-битном, а не абы каком. Пробовал создать тестовый проект http://aakinshin.net/ru/blog/post/wrap-cs-in-com/ Fox так же не видит dllРазумеется. Ибо смотрит не dll, а запись в реестре. Есть ли возможность использования .dll на С# в FoxPro?Технология СОМ разработана как раз для устранения этой самой зависимости от языка/инструмента создания компонентов. Короче, проверяйте наличие регистрации в реестре вашей компоненты. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2018, 07:05 |
|
Подключение к внешней dll .NET/c#
|
|||
---|---|---|---|
#18+
11cergey Есть ли возможность использования .dll на С# в FoxPro? Rick неплохо описал как это можно сделать в своей статье Happy reading! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2018, 10:31 |
|
Подключение к внешней dll .NET/c#
|
|||
---|---|---|---|
#18+
Спасибо за помощь, получилось создать объект, ошибка была в обращении RQ = createObject('RabbitMQ.Client') Необходимый класс имеет имя: RabbitMQ.Client.ConnectionFactory Теперь есть 2 проблемы 1. В С# используется переменная DeliveryTag, тип ulong. При возврате значения в FoxPro ошибка "function argument value, type, or count is invalid" Возможно ли преобразовать? 2. Как в FP раскодировать массив байтов mes = result.body в строку класс в C# Код: plaintext 1. 2. 3. 4.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2018, 13:02 |
|
Подключение к внешней dll .NET/c#
|
|||
---|---|---|---|
#18+
11cergey, Не до конца ясно, что требуется. Только получать сообщения? Тогда однозначно, делать в шарпе. Сделать новый метод, специально для фокса, возвращающий ясные для него типы. Ну и как вариант, делать обмен, через какой то 3й продукт. (БД например) PS Удивлен что хоть что то заработало. Когда то пытался их скрестить, понаписал фигни, кое как ползало. Бросил. Не очень надо было. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2018, 18:57 |
|
Подключение к внешней dll .NET/c#
|
|||
---|---|---|---|
#18+
asdor, необходимо получать сообщения в Fox с отправкой подтверждения Ask о получении после записи в таблицы FP по поводу методов, не хотел изменять исходный проект, т.к. не работал с C#, но видимо других вариантов нет 1. Основная проблема с преобразованием типа ulong, в Fox как я понимаю аналога нет 2. Парсинг массива body (сообщение из RQ) можно сделать через вызов метода своей dll ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2018, 19:27 |
|
Подключение к внешней dll .NET/c#
|
|||
---|---|---|---|
#18+
Если не путаю: аналога ulong C# в фоксе нет, это 64 бита целое беззнаковое. В фоксе только INTEGER это - 32 бита со знаком. Как вариант изворачиваться со строками, т.е. в фоксе объявляешь как string и подсовываешь туда строку в 8 символов. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2018, 20:48 |
|
Подключение к внешней dll .NET/c#
|
|||
---|---|---|---|
#18+
11cergeyнеобходимо получать сообщения в Fox с отправкой подтверждения Так отправка то работает? 11cergeyне хотел изменять исходный проект, т.к. не работал с C# Вот и будет повод поучиться) Хотя возможно прокатит предложение Dima T (String) В самом шарпе, может оказаться все, ну очень просто На вскидку. Объявляешь новый класс Код: c# 1. 2. 3. 4. 5.
И создаешь метод, который будешь звать из фокса. А этот метод, сначала вызывает родной метод, потом, преобразует BasicGetResult в BasicGetResult4VFP и возвращает понятную фоксу структуру. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2018, 07:59 |
|
|
start [/forum/topic.php?fid=41&fpage=11&tid=1581835]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
26ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 138ms |
0 / 0 |