在花了很多时间学习Python通过Jython将一系列基于DLL的函数实现到Java中之后--我忘了阅读Jython的文档,而且缺乏对ctype的支持使得我的大部分代码变得无用。
我不想使用JNI
我正在尝试从pcshll32.dll使用HLLAPI从Personal Communications访问一些函数。
我确实设法让它在Python上工作,几乎没有任何问题,在web上找到很多文档和食谱真的很容易。
现在我偶然发现了JNA,我在使用它时遇到了很多麻烦。我几乎找不到有关它的信息,特别是当我试图访问非标准DLL时。
据我所知,我需要编写一个pcshll32.class作为接口-很像User32.class,它似乎是一个接口(或者我可能应该将其称为代理...)添加到User32.dll。
嗯,这就是我在读完this后所想的。
所以..。如何导入外部DLL?有可能吗?我需要编写接口/代理吗?外面有没有样品?
发布于 2012-08-03 23:01:30
你应该这样做:
public interface PcShll32 extends StdCallLibrary { //StdCallLibrary is for Windows functions
PcShll32 INSTANCE = (PcShll32) Native.loadLibrary(
"pcshll32", PcShll32.class, W32APIOptions.DEFAULT_OPTIONS); //Options are for Win32API
// your methods
}当然,您必须为JNA提供这个外部库。
对我来说,最好的解释是the source code
https://stackoverflow.com/questions/11798088
复制相似问题