Энергетик ПБНИ
Я пытаюсь понять необходимость PBNI. Я хотел бы получить ваше мнение об этом. Я вижу, что это вылеплено после Java JNI. С моделью безопасности, которую имеет Java, я могу понять, зачем им нужен JNI.
Но с PB, у нас уже нет доступа ко всем Windows API? Также мы всегда можем вызывать функции во внешней DLL. При этом, зачем нужен отдельный PBNI? Я знаю, я что-то здесь упускаю. Какой тип приложений / библиотек будет использовать PBNI по сравнению с простым компонентом DLL или Activex.
Кроме того, я использую PB 10. Продолжается ли это в 11 и 12 и далее?
Я ценю любые отзывы, комментарии или предложения об этой технологии. Еще раз большое спасибо за ваш вклад.
Сэм
1 ответ
Целью PBNI является расширение PowerBuilder. Когда вы добавляете объект или функцию через PBNI, он становится на одном уровне со встроенными в PowerBuilder. Это также относится к элементам управления в PBNI, вы можете просто перетащить их из дерева систем и поместить их в окно. Некоторые полезные вещи, которые я видел в PBNI, включают в себя сдвиг битов, пользовательские строковые операции и элементы управления canvas. Вы также можете использовать PBNI, чтобы говорить с чем-либо еще, что вы хотите. IIRC кто-то сделал интерфейс, который позволяет вам называть Python. Библиотека SOAP для PB Classic также приходит на ум.
Что касается Windows API, вы можете назвать довольно много полезных вещей, но вы немедленно попадаете в стену, если что-то требует обратного вызова. Кроме того, если вам нужна структура типов, которые PowerBuilder не может создать, вам необходимо запрограммировать команды MoveMemory для перемещения данных.