Мне было дано задание обновить существующее 16-битное приложение для рабочего стола, изначально написанное на GFA Basic.
Я хочу знать, есть ли возможность доступа к функциям внутри этих 16-битных Dll через C / JNI (или любой другой язык программирования).
Я думаю, мне нужно написать какую-то промежуточную DLL для доступа к функциям из класса Java (или любого другого языка).
Например
DLLTEST имеет реализацию функций
$ Библиотека
'LNK Exe d: \ DLLtest.dll
Процедура LIBMAIN (hInst &, DSeg &, HpSz &, lpCmd%)
q_dllname $ = "DLLtext.dll"
RETVAL 1 'Если используется LIBMAIN, тогда RETVAL должен быть ИСТИНА
Возвращение
Процедура WEP (SysExit &)
"####################################################
// SysExit = 1 - ExitWindows
// SysExit = 0 - DLL vrijgegeven
RETVAL 0 '???????????
Возвращение
Процедура TextTest (dc &)
$ EXPORT TextTest
SETDC DC &
RGBColor 0
Local t $ = "Hello world" + Chr $ (0)
Текст 10, 10, т $
Beep
~ TextOut (dc &, 10, 50, V: t $, Len (t $))
Beep
Возвращение
Приведенный выше dll-файл в свою очередь используется TESTTEXT.exe
// целевой файл exe
'LNK Exe d: \ testtext.exe
DLL # 7, "dlltest.dll"
DECL LONG TextTest (W)
ENDDLL
OpenW # 1
ч & = победа (1)
SETDC GetDC (h &)
'RGBCOLOR 0
'GRAPHMODE R2_COPYPEN
~ @@ TextTest (_DC ())
KeyGet k%
CloseW # 1
FreeDll 7
Конец
Я хочу переписать этот TESTTEXT.exe, используя Java / C (или любой другой язык программирования модеров). Я думаю, мне нужно построить мост между этой dll и новой exe, построив другую dll.
Я надеялся получить помощь в написании этой промежуточной библиотеки DLL.
Кроме того, дайте мне знать, если такое решение имеет смысл!
Ваша помощь будет принята с благодарностью.
Спасибо за ваше время.