|
PBNI Wizard
|
|||
---|---|---|---|
#18+
Есть PBNIWizard (в комплекте PB10.5), но как понимаю старый, т.к. инстал при старте выдает ошибку: --------------------------- Windows Script Host --------------------------- Сценарий: C:\Program Files (x86)\Sybase\PowerBuilder 10.5\SDK\PBNI\Wizards\VCWizards\PBNIWizard8\install.wsf Строка: 7 Символ: 8 Ошибка: Неверная ссылка на корень в разделе реестра "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Setup\VC\ProductDir". Код: 80070002 Источник: WshShell.RegRead ------------------------- На ПК VS2017, NET 4.6, W7 (64). Что сделать, чтобы установить PBNIWizard и пользоваться? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2017, 11:03 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
Он на директорию похоже ругается Попробуйте поставить в корень диска C: ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2017, 11:58 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
spas2001Он на директорию похоже ругается Попробуйте поставить в корень диска C: Эт я понимаю. Возможно будет достаточно в файлах deploy.bat и install.wsf скорректировать соответствующие названия и значения переменных, по аналогии различий между одноименными файлами в каталогах PBNIWizard (7.0) и PBNIWizard8 (8.0). В первом ссылка на: "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0\Setup\VC\ProductDir" а во втором ссылка на: "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Setup\VC\ProductDir" Но у меня VS2017 (15.0) и W7 (64) и такого раздела реестра нет. К тому же, в обоих вариантах файлов указывается соответственно: "C:\Program Files\Microsoft Visual Studio 7" "C:\Program Files\Microsoft Visual Studio 8" а у меня скорее всего надо указать: "C:\Program Files (x86)\Microsoft Visual Studio" а может и продолжить путь по имеющейся цепочке: "C:\Program Files (x86)\Microsoft Visual Studio\2017" т.к. другого не вижу. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2017, 12:22 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
AIS, возможно я не прав, но судя по всему проблема в несовместимости 32/64 битных приложений. Как вариант, смоделировать ситуатуцию на 32 виртуалке. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2017, 17:14 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
Сам создай ключи, в чем проблема? Ну и поставить соота=ветственно VC 7.0 и 8.0 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2017, 21:13 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
spas2001Сам создай ключи, в чем проблема? Ну и поставить соота=ветственно VC 7.0 и 8.0 Проблема в том, что для VS2017 не знаю куда, что прописывать, чтобы была "правильная" связь с РВ (установка PBNI). Задачу решил установкой VS2015. Хотя для него чуть пришлось пути допилить (таки W7 и х64 в тандеме дали свое Г), но все получилось. ПС. Конечно жалко, что такое с VS2017 не получилось, да и хрен с ним. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2017, 22:45 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
Подниму тему, нужен совет или комментарий по опыту. Сделал внешнее решение одной и той же задачи при помощи DLL с экспортированной функцией и через PBX. И то и другое работает. Возник вопрос: Что предподчительней использовать в проекте DLL или PBX? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2018, 12:46 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
AIS, C PBNI больше возможностей. Например можно напрямую обращаться к объектам и вызывать функции ПБ из С++. Но с ним больше мороки по поддержке при выходе новых версий ПБ. Так что если возможностей DLL хватает то есть смысл именно этот вариант использовать, а перейти на PBNI только когда вознитнет необходимость. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2018, 16:37 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky, Спасибо за совет. Да, согласен, с PBX хлопот больше, но есть и не малые плюсы. На счет проблем с выходом новых версий РВ, то это наверное решающий фактор, т.к. в последних версиях PBX уже не идет в комплекте, а ориентир на VS, если я не ошибаюсь. А если смотреть с точки зрения защиты кода, т.е. спрятать, то DLL снова проигрывает, или без разницы? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2018, 17:20 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
AISА если смотреть с точки зрения защиты кода, т.е. спрятать, то DLL снова проигрывает, или без разницы? Без разницы. И то и то - DLL ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2018, 21:48 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
Anatoly MoskovskyAISА если смотреть с точки зрения защиты кода, т.е. спрятать, то DLL снова проигрывает, или без разницы? Без разницы. И то и то - DLL С этим, конечно, не спорю. Но если только просто поверхностно взглянуть на экспортируемые функции DLL и PBX, то это большая разница: у DLL - все как на ладони*, а у PBX - уй поймешь* о чем они. Не правда ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2018, 22:52 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
Создаю в PBX функцию вычисления MD5 из переданного строкового аргумента: MD5 не работает с входящим аргументом Код: 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. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58.
Где ошибка или как правильно сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2018, 10:40 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
AIS Код: plaintext 1.
data - указатель на строку в кодировке ANSI lptheInput - указатель на строку в кодировке Unicode (UTF-16) Во-первых, нельзя так принудительно менять тип, не преобразовав данные (там потом следующий strlen() неверно отрабатывает, и может еще какие-то эффекты). Во-вторых, вам надо решить в каком формате вы будете строку передавать в MD5 (UTF-16 или UTF-8). ANSI - не всегда годится, т.к. будут потери символов не входящих в текущую кодовую страницу. В-третьих, надо помнимать что MD5 от одной и той же строки в ANSI, UTF-16 и в UTF-8 будут разные. Эта тема уже обсуждалась где-то здесь. Мое мнение - если MD5 потом передается в третьи приложения, то лучше UTF-8, т.к. для английского текста ANSI и UTF-8 совпадают, т.е. больше вероятность совместимости. В любом случае предлагаю преобразование кодировки делать на стороне ПБ функцией Blob() со вторым параметром - кодировкой. А в модуль передавать blob и его длину, и уже его хешировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2018, 12:34 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky, премного благодарен, таки да, с blob и UTF-8 все встало на свои места. Еще буквально недавно Вы мне это же советовали в другой ситуации, видать не внял, все string примеряю...)) Спасибо за помощь. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2018, 18:02 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
Еще вопрос, на который не могу найти ответа. Получаю в PB экземпляр класса и передаю его в PBNI: Код: sql 1. 2. 3.
а как потом получить свойства класса на стороне PBNI? Например, lcd.LibraryName. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2018, 11:53 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
См. документацию по PBNI: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2018, 09:18 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
avs63См. документацию по PBNI: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Да вроде читал... Для начала у меня не получается даже fid получить. Так как в доках выдает ошибку, а если так: Код: plaintext 1. 2. 3.
то получаю UndefinedFieldID. В чем причина? РВ10.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2018, 11:21 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
Упс, нашел ошибку. Все работает. Всем спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2018, 12:19 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
AISЕще вопрос, на который не могу найти ответа. Получаю в PB экземпляр класса и передаю его в PBNI: Код: sql 1. 2. 3.
а как потом получить свойства класса на стороне PBNI? Например, lcd.LibraryName. Да, если передаю в PBNI параметром lcd, то могу получить lcd.LibraryName. А как получить LibraryName ничего вообще не передавая на PBNI? Вот например: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Что не так? Можно ли таким способом получить LibraryName? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2018, 22:41 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
AISЧто не так? Вот так нельзя делать: Код: sql 1.
Все такие места в коде надо заменить на Код: sql 1.
И вообще, если у вас в коде есть конструкция (тип) перед выражением, то там скореее всего проблема. Лучше заменить ее на конструкцию static_cast<тип>(выражение). Тогда компилятор сам подскажет вам когда нельзя так делать )) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 13:37 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky, спасибо за помощь, поменял. Теперь получилось получить, например, значение свойства "displayname" приложения. А вот дальше не могу понять, что делать, чтобы получить свойство "classdefinition" приложения, которое является объектом, и далее получить из него значение LibraryName. Если есть возможность, то подскажите хоть схематически, как это делается. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 14:38 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
AIS, Что-то типа этого. (Только добавить проверки на успешность выполнения) Код: plaintext 1. 2. 3.
Если это не сработает, то приведите ваш код - может по нему что-то будет видно. У меня нет Винды с ПБ под рукой, поэтому больше ничем помочь не могу, кроме проверки вашего кода в форуме )). ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 19:30 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
А вообще, classdefinition это же свойство объекта, а не класса. Поэтому вам надо этот объект (приложение?) передать в pbni, и для него вызывать GetFieldID и GetObjectField ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 19:35 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky, PB: событие "open" приложения Код: sql 1. 2. 3.
PBX: после корректировки Код: 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.
А дальше не пойму как получить из PBX значение libraryname, который в РВ в событии "open" приложения можно получить так: Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2018, 10:06 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
AIS, Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2018, 15:53 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
Anatoly MoskovskyAIS, Код: plaintext 1. 2. 3. 4.
У-уф, наконец то получилось. Только 2-ю строчку скорректировал на Код: plaintext 1.
и все поехало. Огромное человеческое спасибо за помощь. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2018, 16:32 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
Можно ли из PBNI и если да, то как, экстренно закрыть приложение РВ, вызвав на прямую функцию "Halt" или "Halt Close", и не создавая при этом на стороне РВ для этого событие или функцию? В какую сторону смотреть или искать? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2018, 21:06 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
AISМожно ли из PBNI и если да, то как, экстренно закрыть приложение РВ, вызвав на прямую функцию "Halt" или "Halt Close", и не создавая при этом на стороне РВ для этого событие или функцию? В какую сторону смотреть или искать? Вопрос снимается, поторопился задать. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2018, 21:28 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
AISМожно ли из PBNI и если да, то как, экстренно закрыть приложение РВ, вызвав на прямую функцию "Halt" или "Halt Close", и не создавая при этом на стороне РВ для этого событие или функцию? В какую сторону смотреть или искать? Ан нет, таки вопрос ещё актуален... вызов системной функции РВ Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Вроде пошагово делаю правильно, но не работает. Думаю, что ошибка в установке signature. Пробовал разные варианты (пусто, Q, S), но ничего не помогло. А может в скрипте ошибка? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2018, 09:47 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
AIS, Если надо реально просто закрыть приложение, то просто вызовите функцию WinAPI для этого: Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2018, 11:58 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
Anatoly MoskovskyAIS, Если надо реально просто закрыть приложение, то просто вызовите функцию WinAPI для этого: Код: sql 1.
Спасибо, за совет. Если не найду решения, то так и сделаю. Кстати, вот это из примера в доках: Код: sql 1. 2. 3.
работает, а с "halt" - нет. Ну, да ладно... А вообще, я так понимаю что, то что сделано на стороне РВ лучше в PBX не перетягивать. Одним словом проще WinAPI использовать в PBX, чем РВ. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2018, 14:08 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
Снова о Halt, уж больно стало интересно... В списке системных функций её нет. Есть только упоминание в help. Может это не системная функция, тогда что это? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2018, 11:17 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
AIS, Так HALT это не функция, а оператор, как RETURN ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2018, 14:40 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
Anatoly MoskovskyAIS, Так HALT это не функция, а оператор, как RETURN Вот пазлы и сложились, чего вызов не работал. Что то перемкнуло с этим HALT, что это системная функция. Спасибо за ликбез, сразу попустило...)) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2018, 16:34 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
Очередной вопросик. Если нужны в РВХ функции для внутренних вычислений, т.е. которые не взаимодействуют с РВ, то как их создать? ПС. сделал тестовую функцию "test", которая вычисляет и передает значение "int" функции, которую можно вызвать из РВ и увидеть это значение. Вроде все работает, но в РВ-проекте появилась глобальная функция "int" без каких либо свойств. Если бы появилась "test", то хоть бы как то было оправдано, хотя и не понятно почему, но тут "int". Видать где-то что-то не так делаю или не доделал. Может кто подскажет... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2018, 12:19 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
AIS, как на С функции пишутся, так и делать. PBX тут вообще ни каким боком. Писать PBNI-объявления необходимо только для того, что вызывает непосредственно билдер. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2018, 16:36 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
Еще пару вопросов. 1. Почему в РВ и в PBNI вызов CreateFile по разному? Код: sql 1. 2. 3. 4.
Код: plaintext 1. 2. 3. 4. 5. 6.
2. есть в PBNI такой кусок работающего кода: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
попытался его перенести в РВ: Код: sql 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. 27. 28. 29. 30.
не работает. Где то ошибка или это в принципе не возможно на РВ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2018, 11:01 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
AIS Код: plaintext 1.
В С++ это неверная строка. \с - это спецсимвол. Должно быть: Код: plaintext 1.
Остальное не смотрел - некогда ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2018, 13:39 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
Anatoly MoskovskyAIS Код: plaintext 1.
В С++ это неверная строка. \с - это спецсимвол. Должно быть: Код: plaintext 1.
Остальное не смотрел - некогда Упс! Точно, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2018, 15:35 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
Уперся еще в один вопрос - передача параметра между функциями внутри PBNI. Например, в PBNI создал две тестовые функции Rand и Randomize, которые вызывают соответственно одноименные системные функции РВ. Обе функции по отдельности работают. Но как в PBNI из одной функции (Rand) вызвать другую (Randomize), а точнее передать параметр и принять его, не пойму. Как правильно передавать параметры между функциями внутри PBNI? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2018, 04:20 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
Вопрос чисто риторический, и возможно не в том форуме, то прошу прошения... ;) А может не хрен постигать "шедевры" PBNI, чтобы доточить в то, что уже "мертво", то чего в нем при жизни не было? Может уже давно пора просто "это все" делать на с++ и еб&ть себе мозги? (прошу извинить за прямоту, но уже с PBNI мозги набекрень...) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2018, 23:49 |
|
PBNI Wizard
|
|||
---|---|---|---|
#18+
AIS, В С++ большой порог вхождения. Нужны годы чтобы достичь хотя бы среднего уровня. Лучше C# или там Java. Но надо помнить, что то что в ПБ дает сам язык (например DW) в других языках возможно придется самому реализовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2018, 12:33 |
|
|
start [/forum/search_topic.php?author=Dandy&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
63ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
others: | 9532ms |
total: | 9737ms |
0 / 0 |