返回介绍

A.3.5 其他 J/Direct 特性

发布于 2024-10-15 23:56:37 字数 759 浏览 0 评论 0 收藏 0

通过 @dll.import 引导命令内的修改符(标记),还可用到 J/Direct 的另两项特性。第一项是对 OLE 函数的简化访问,第二项是选择 API 函数的 ANSI 及 Unicode 版本。

根据约定,所有 OLE 函数都会返回类型为 HRESULT 的一个值,它是由 COM 定义的一个结构化整数值。若在 COM 那一级编写程序,并希望从一个 OLE 函数里返回某些不同的东西,就必须将一个特殊的指针传递给它——该指针指向函数即将在其中填充数据的那个内存区域。但在 Java 中,我们没有指针可用;此外,这种方法并不简练。利用 J/Direct,我们可在 @dll.import 引导命令里使用 ole 修改符,从而方便地调用 OLE 函数。标记为 ole 函数的一个固有方法会从 Java 形式的方法签名(通过它决定返回类型)自动转换成 COM 形式的函数。

第二项特性是选择 ANSI 或者 Unicode 字串控制方法。对字串进行控制的大多数 Win32 API 函数都提供了两个版本。例如,假设我们观察由 USER32.DLL 导出的符号,那么不会找到一个 MessageBox() 函数,相反会看到 MessageBoxA() 和 MessageBoxW() 函数——分别是该函数的 ANSI 和 Unicode 版本。如果在 @dll.import 引导命令里不规定想调用哪个版本,JVM 就会试着自行判断。但这一操作会在程序执行时花费较长的时间。所以,我们一般可用 ansi,unicode 或 auto 修改符硬性规定。

欲了解这些特性更详细的情况,请参考微软公司提供的技术文档。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文