Можно ли вызвать код C ++ из Progress OpenEdge ABL?

Можно ли выполнить код C ++ из Progress ABL?

В частности, я хочу использовать функцию SHGetKnownFolderPath (документация здесь) определить местоположение папки «Документы» на компьютере под управлением Windows 7, на котором папка документов перенаправлена ​​в другое место.

Или есть альтернативный способ определения этой информации без проверки раздела реестра?

0

Решение

Вы можете вызывать внешние общие библиотеки и библиотеки DLL.

http://documentation.progress.com/output/OpenEdge113/pdfs/dvpin/dvpin.pdf

Раздел 3 «Внешние интерфейсы» — это то, что вы ищете.

это http://dbappraise.com/ppt/shlib.pptx также может быть полезным.

C ++ часто проблематичен из-за того, как он называет вещи. Возможно, было бы лучше создать «шим», используя простой старый C для моста между OpenEdge и C ++

Вызывать системные функции Windows обычно легко. Что-то вроде:

procedure SHGetKnownFolderPath external "pathToLibrary":
define parameter a as someType.
define parameter b as someType.
define return parameter x as someType.
end.
1

Другие решения

Проверьте документ «Интерфейсы программирования», раздел «Интерфейсы внешних программ».

Кроме того, некоторые версии ABL также поддерживают прямые вызовы .NET в качестве опции.

0

По вопросам рекламы [email protected]