【问题标题】:JNA Mapping to CJNA 映射到 C
【发布时间】:2011-02-19 15:59:43
【问题描述】:

大家好,我在 c 中具有以下功能并想在 JNA 中映射在 JNA 中可能与此等效的内容。

2.3。 SI_Open

描述:打开一个设备(使用 SI_GetNumDevices 返回的设备号)并返回

将用于后续访问的句柄。

SI_STATUS SI_Open (DWORD DeviceNum, HANDLE *Handle)

参数:

  1. DeviceNum - 设备索引。第一个设备为 0,第二个设备为 1,依此类推。

  2. 句柄 - 指向将存储设备句柄的变量的指针。

返回值:

SI_SUCCESS

SI_DEVICE_NOT_FOUND

SI_INVALID_PARAMETER

【问题讨论】:

    标签: c jna


    【解决方案1】:

    SI_STATUS 不是一种常见类型,您应该查看头文件以获得此答案

    这将在 jna 中给出以下映射

    int SI_Open(int DeviceNum, PointerByReference handle)
    

    【讨论】:

    • 是的,你是对的,我已经尝试过 PointerByRefrence 和 IntByReference 但没有成功。目前我正在从注册表中读取端口,但它不是一个好主意。请帮我解决这个映射问题.
    • 从你给我的信息来看,这是jna.java.net/#mapping的正确映射。如果您可以向我提供其他文档,我可能会指出正确的映射。对了,你有没有看过 jna 的“platform.jar”,它提供了很多原生映射(一个句柄映射示例)
    • 如果你看到这个silabs.com/support%20documents/technicaldocs/an144.pdf 两个函数 CP210x_GetNumDevices() 和 CP210x_GetProductString() 对我有用,但是我无法在 CP210x_Open() bcz 中获取句柄,你可以看到所有剩余的函数都依赖于句柄。所以请看看我被困在这个问题上。
    • 这里还有更多用于比较函数是否成功的内容。公共静态最终 int CP210x_SUCCESS = 0x00;公共静态最终 int CP210x_DEVICE_NOT_FOUND=0xFF; public static final int CP210x_INVALID_PARAMETER=0x02;
    • 好吧,我(几乎)阅读了所有内容,但我找不到事情开始恶化的地方......你能试试这个并给我结果吗:pastebin.com/0HdkUPXh
    猜你喜欢
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2023-03-18
    • 2019-04-12
    相关资源
    最近更新 更多