我的任务是升级最初用 GFA Basic 编写的现有 16 位桌面应用程序。我想知道是否有可能通过 C/JNI(或任何其他编程语言)访问这些 16 位 Dll 中的函数。我想,我必须编写某种中间 DLL 来访问 Java 类(或任何其他语言)的功能。
例如 DLLTEST 有函数的实现
$Library '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(dc&)
$EXPORT 文本测试
SETDC 直流&
RGB 颜色 0
本地 t$ = "Hello world" + Chr$(0)
文本 10、10、t$ 哔声
~TextOut(dc&, 10, 50, V:t$, Len(t$))
嘟
返回
上面的dll文件依次被TESTTEXT.exe使用
//目标exe文件
'LNK exe d:\testtext.exe
DLL #7,“dlltest.dll”
DECL LONG TextTest(W)
ENDDLL
开放式#1
h& = 赢(1)
SETDC GetDC(h&)
' RGB 颜色 0
' GRAPHMODE R2_COPYPEN
~@@TextTest(_DC())
密钥获取 k%
关闭W#1
自由DLL 7
结尾
我想用 Java/C(或任何其他现代编程语言)重写这个 TESTTEXT.exe。我想,我需要通过构建另一个 dll 在这个 dll 和新的 exe 之间建立一座桥梁。我希望得到一些关于编写这个中间 dll 的帮助。
另外,让我知道这种解决方案是否有意义!
您的帮助将不胜感激。谢谢你的时间。