Мне было поручено обновить существующее приложение с 16-битным рабочим столом, первоначально написанное в GFA Basic. Я хочу знать, есть ли возможность доступа к функциям внутри этих 16-разрядных Dll через C/JNI (или любой другой язык программирования). Я предполагаю, что мне нужно написать какую-то промежуточную DLL для доступа к функциям класса Java (или любого другого языка).Доступ к 16-разрядной библиотеке DLL
Например DLLTEST имеет осуществление функций
$ Библиотека «LNK Exe d: \ DLLtest.dll
Процедура LibMain (hInst &, DSEG &, HpSz &, lpCmd%)
q_dllname $ = "DLLtext.dll" RETVAL 1 'Если используется LIBMAIN, то RETVAL должен быть TRUE
Вернуться
Процедура WEP (SYSEXIT &) '################################## ############
// SYSEXIT = 1 - ExitWindows
// SYSEXIT = 0 - DLL vrijgegeven
RETVAL 0 '???????? ???
Вернуться
Процедура TextTest (постоянного &)
$ EXPORT TextTest
SETDC постоянного &
RGBColor 0
Локальная т $ = "Привет мир" + Chr $ (0)
Текст 10, 10, т $ Звуковой сигнал
~ TextOut (DC &, 10, 50, В: т $, Len (т $))
Звуковой сигнал
Возврат
выше файл DLL в свою очередь, используется TESTTEXT.exe
// назначения исполняемый файл
'LNK Exe d: \ testtext.exe
DLL # 7, "dlltest.DLL»
DECL LONG TextTest (Вт)
ENDDLL
OpenW # 1
ч & = Победа (1)
SETDC GetDC (ч &)
' RGBCOLOR 0
'GRAPHMODE R2_COPYPEN
~ @@ TextTest (_DC())
KeyGet к%
CloseW # 1
FreeDll 7
Конец
Я хочу переписать этот TESTTEXT.exe с использованием Java/C (или любого другого языка программирования модератора). Думаю, мне нужно построить мост между этой dll и новым exe, построив еще одну dll. Я надеялся получить некоторую помощь в написании этой промежуточной dll.
Также, дайте мне знать, если это решение имеет смысл!
Ваша помощь будет высоко оценена. Спасибо вам за ваше время.
Ваш вопрос может быть полезен при форматировании кода как кода. – ndim
Спасибо за быстрый ответ. Хотя я разочарован решением .. :( Я наткнулся на эту ссылку: http://www.mvps.org/vbvision/thunks.htm Если я правильно понял эту статью, я бы мог использовать Win32 SDK на моей машине XP и попытаться найти выход из этого беспорядка, написав скрипт thunk. – niobie
@niobie: хотя вы можете запускать файлы SDK на компьютере XP (при условии, что вы можете найти достаточно старый SDK) все еще застрял в том, что то, что вы производите (код, использующий Flat Thunk), будет работать только на Windows 9x/Me. –