gpt4 book ai didi

c - 访问 16 位 DLL

转载 作者:行者123 更新时间:2023-11-30 14:31:10 25 4
gpt4 key购买 nike

我接到的任务是升级最初用 GFA Basic 编写的现有 16 位桌面应用程序。我想知道是否有可能通过 C/JNI(或任何其他编程语言)访问这些 16 位 Dll 内的函数。我想,我必须编写某种中间 DLL 才能访问 Java 类(或任何其他语言)的功能。

例如DLLTEST有函数的实现

$图书馆'LNK Exe d:\DLLtest.dll

过程 LIBMAIN(hInst&, DSeg&, HpSz&, lpCmd%)

q_dllname$ = "DLLtext.dll" RETVAL 1 ' 如果使用 LIBMAIN,则 RETVAL 必须为 TRUE

返回

程序 WEP(SysExit&) '################################################

//SysExit = 1 - 退出Windows

//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

OpenW#1

h& = 胜利(1)

SETDC GetDC(h&)

'RGB颜色0

'GRAPHMODE R2_COPYPEN

~@@TextTest(_DC())

Key获取k%

关闭W#1

FreeDll 7

结束

我想使用 Java/C(或任何其他现代编程语言)重写此 TESTTEXT.exe。我想,我需要通过构建另一个 dll 来在这个 dll 和新的 exe 之间建立一座桥梁。我希望得到一些关于编写这个中间 dll 的帮助。

另外,请告诉我这种解决方案是否有意义!

我们将非常感谢您的帮助。感谢您抽出时间。

最佳答案

在 32 位应用程序中使用 16 位 DLL 涉及 Microsoft 所说的“平面转换”。 Flat Thunking 在 Windows 16/32 位混合版本(Windows 95、98、98SE、Me)中可用。

任何当前合理的 Windows 版本都不支持您想要的功能。

关于c - 访问 16 位 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1929079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com