2009-06-10 5 views
3

Хотите узнать, есть ли у кого-нибудь опыт и/или пример кода для создания вызовов DDE с Java. Я сделал DDE с помощью win32 вызовов из библиотеки stddde (DdeInitialize, DdeClientTransaction), и мог бы написать обертку JNI для этого, но я подумал, что было бы неплохо сделать это из JNAВыполнение вызовов DDE с Java

У меня также есть некоторые проблемы о том, что вызовы DDE должны возникать из потока с насосом сообщений, и я не совсем уверен, как заставить это на Java.

Звонки, которые мы будем делать, довольно просты (что эквивалентно функциям DDInitiate, DDEExcecute и DDETerminate от VBA).

ответ

0

ЮНА теперь имеет реализацию DDE в своем CONTRIB хранилище (скомпилированные классы доступны в джна-платформенной артефакт):

https://github.com/java-native-access/jna/blob/master/contrib/platform/src/com/sun/jna/platform/win32/DdemlUtil.java

Тесты блок содержит множество примеров использования:

https://github.com/java-native-access/jna/blob/master/contrib/platform/test/com/sun/jna/platform/win32/DdemlUtilTest.java

1

Десять лет назад я использовал небольшую DDE-обложку Neva Object Technology. Работает, если вам нравится такая штука. Но IIRC, вы должны прочитать FAQ (хотя то, что он делает, вероятно, не так уж и удивительно, если раньше вы использовали DDE).

+0

Спасибо за наводку - я подозреваю й является ближайшим, что я собираюсь получить в готовом решении. Я, вероятно, завершу адаптацию библиотеки C, которую мы имеем через JNI. –

+0

NevaObject DDE работает очень хорошо, но библиотека доступна только для 32 бит. Сайт кажется мертвым :( –

5
+0

awesome - именно то, что мне нужно –

+0

Клиентская реализация JDDE хороша, но с версии 2.0.4 реализация сервера немного ограничена: клиентские отключения не уведомлены, поэтому невозможно освободите ресурсы, выделенные для разговора DDE. –