首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JNAerator和ftd2xx库

使用JNAerator和ftd2xx库
EN

Stack Overflow用户
提问于 2016-05-05 06:19:46
回答 1查看 162关注 0票数 0

我是一个使用JNA的新手,并且发现了JNAerator工具。我认为这将是一个简单的方法,然而,我是如何生成我的界面和各种文件的,我发现很难调试或理解为什么它可能不工作。Windows编程不是我的强项,因此我尝试用JNA让自己的生活变得更轻松……

头文件在这里:http://www.ftdichip.com/Support/Knowledgebase/index.html?ftd2xx_h.htm

它在这里生成了以下Java JNA文件:http://pastebin.com/hpJgSRMk

现在我的示例应用程序只是简单地尝试列出那些连接的设备,然后我可以遍历和操作这些设备。

代码语言:javascript
复制
import com.sun.jna.NativeLong;

import ft2xx.Ftd2xxLibrary;
import ft2xx.Ftd2xxLibrary.LPDWORD;

public class Test {
    public static void main(String[] args){
        LPDWORD lpd = new LPDWORD();
        NativeLong nl = Ftd2xxLibrary.INSTANCE.FT_CreateDeviceInfoList(lpd);
        System.out.println("Call State: " + nl);
    }
}

下面是我在这里读到的:http://www.ftdichip.com/Support/Documents/ProgramGuides/D2XX_Programmer's_Guide(FT_000071).pdf,它详细说明了如何列出连接的设备,然后可以迭代等等。

所以,我的方法返回一个6,这表示一个无效的参数,但是考虑到我自动生成了代码,并且它没有堆栈,我有点不知道如何继续。

考虑到我需要实现和使用的方法的数量,我使用了JNAerator,并且我不相信JNA,并且这种生成的代码将足够容易地为这个特定的目的而工作。

有什么线索吗,还是应该回到基本问题上来?

我使用的是Windows7,使用的是Eclipse (Mars)和JNAerator的webstarted版本。

EN

回答 1

Stack Overflow用户

发布于 2016-05-06 19:17:39

如果你不能很好地理解指针,你就会陷入一个混乱的世界。您的调用需要一个指向DWORD (Java int)的指针。您传入了一个,但它的默认值为零,这与空指针相同。如果使用IntByReference,则至少可以在调用之后使用IntByReference.getValue()来查看传递给它的内存缓冲区中本机方法“返回”给您的内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37039038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档