powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Доступ из PB к dll написаной на c#
3 сообщений из 3, страница 1 из 1
Доступ из PB к dll написаной на c#
    #35919382
Дремучий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В силу ряда причин часть кода приложения должна быть написана на C#. Оформляться это будет как dll. Из PB необходимо получить доступ к этой dll. В принципе все вроде бы понятно, но что-то у меня не получается.

На C# имеется ряд классов. В нужном мне есть метод объявленный так:
Код: plaintext
public static bool test_to_bd_2()

В PB прописываю функцию:
Код: plaintext
function boolean test_2() library 'test.dll' alias for "test_to_bd_2"

Потом пытаюсь вызвать ее в коде и получаю ошибку: "Bad runtime function reference..."

Насколько я понимаю, метод объявленый статическим так вызывать можно (по крайней мере внутри C# это проходит).



В принципе, я пробовал и по другому.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
PBObject = create OLEObject

ll_result = PBObject.connectToNewObject("test.test1")

if ll_result <>  0  then
	messageBox( 'Тест C#', 'До класса не достучался :(. ~nresult = ' + string( ll_result ))
else
...
end if

В таком случае получаю на выходе "До класса не достучался :(...." Код результата - 2


Буду признателен, если кто-то укажет мне как можно получить положительный результат по моей проблеме.
...
Рейтинг: 0 / 0
Доступ из PB к dll написаной на c#
    #35919699
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДремучийВ силу ряда причин часть кода приложения должна быть написана на C#. Оформляться это будет как dll. Из PB необходимо получить доступ к этой dll. В принципе все вроде бы понятно, но что-то у меня не получается.

На C# имеется ряд классов. В нужном мне есть метод объявленный так:
Код: plaintext
public static bool test_to_bd_2()

В PB прописываю функцию:
Код: plaintext
function boolean test_2() library 'test.dll' alias for "test_to_bd_2"

Потом пытаюсь вызвать ее в коде и получаю ошибку: "Bad runtime function reference..."

Насколько я понимаю, метод объявленый статическим так вызывать можно (по крайней мере внутри C# это проходит).

Этот подход вообще не работает из PB (насколько мне известно).

Дремучий
В принципе, я пробовал и по другому.
Код: plaintext
1.
2.
PBObject = create OLEObject
ll_result = PBObject.connectToNewObject("test.test1")

Тут направление мысли правильное. Но дополнительно требуется на C# или любом другом языке .Net написать ActiveX обертку для вашей ф-и в C#. Затем зарегистрировать ее в системе классов COM (regsrv32.exe) и уже потом вызывать ее так как вы пытались.

Это все в теории - я сам не делал этого.
...
Рейтинг: 0 / 0
Доступ из PB к dll написаной на c#
    #35919707
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, совсем забыл.
Начиная с PB 10.5 (вроде) классы .Net можно вызывать напрямую, при условии что приложение собирается в WinForm .Net target.
Но даже в 11.5 это направление в PB настолько недоработано, что я не рекомендую с ним связываться.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Доступ из PB к dll написаной на c#
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]