gpt4 book ai didi

Java 相当于 IntPtr.ZERO?

转载 作者:行者123 更新时间:2023-12-01 04:56:11 25 4
gpt4 key购买 nike

Possible Duplicate:
What’s the equivalent to IntPtr (C#) in Java?

是否有与 C# 的 IntPtr.ZERO 等效的 Java 版本?如果没有,是否有任何方法可以在传递给 JNA 库接口(interface)调用时实现相同的行为?

我使用此代码片段来表示IntPtr.ZERO:

private static final IntByReference ZERO = new IntByReference(0);

当传递到这个 Kernel32 JNA 接口(interface)时,我会实现相同的行为吗?:

boolean CreateProcess(String lpApplicationName, String commandLine,
int processAttributes, int threadAttributes,
boolean inheritHandles, int creationFlags,
IntByReference environment, String currentDirectory,
STARTUPINFO startupInfo, PROCESS_INFORMATION processInformation);

就这样: CreateProcess(target, null, 0, 0, false, 4, ZERO, null, sInfo, pInfo)

最佳答案

我不是 C# 程序员,但如果我正确理解 IntPtr.ZERO,那么就没有 Java 等效项。 Java引用可以为空,也可以赋值,没有第三种情况。

如果您向我们展示您想要实现的目标,以及您认为需要的地方,我们可能会为您指明正确的方向(无双关语)。

<小时/>

编辑:对@Jire评论的回复:

很可能有一种方法可以直接完成您想要的操作,但这似乎是一条艰难的道路,尝试通过 JNA 将 NtDll 和 Kernel32 接口(interface)直接映射到 Java。正如您所发现的,它们是两个完全不同的世界,并且有很多东西不能直接翻译。

我建议编写您自己的 DLL,它使用与 JNA 配合良好的更简单类型接受来自 java 应用程序的命令式请求,然后调用适当的 native 窗口调用。

参见JNA - Mapping Types查看 JNA 可以在 native 代码和 Java 之间映射的数据类型列表。

如果您决定必须在没有 dll 介入的情况下执行此操作,我祝您好运,如果您成功了,请发布代码供其他人查看。

关于Java 相当于 IntPtr.ZERO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14105392/

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