将 DLL 放入 Java 中

发布于 2024-11-10 10:55:32 字数 176 浏览 2 评论 0原文

有谁知道是否可以使用 Swig 为带有捆绑 C 头文件的 DLL 生成 Java 接口?有很多教程描述了如果您有源代码该怎么做(http://www. swig.org/Doc1.3/Java.html)。

Does anybody know whether it's possible to use Swig to generate a Java interface for a DLL with bundled C headers? There're many tutorials describing what to do if you have the source (http://www.swig.org/Doc1.3/Java.html).

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

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

神仙妹妹 2024-11-17 10:55:32

即使您只有头文件和 DLL,您链接到的教程中的所有信息仍然相关。您所需要的只是标头和与其链接的库。

那么你有两个选择。您可以使构建过程将 SWIG 生成的代码与现有 DLL 链接起来,也可以使用类似以下内容:

%pragma(java) jniclasscode=%{
  static {
    try {
        System.loadLibrary("mylibrarythatIonlyhaveaDLL");
        System.loadLibrary("swigmodule");
    } catch (UnsatisfiedLinkError e) {
      System.err.println("Native code library failed to load. \n" + e);
      System.exit(1);
    }
  }
%}

在接口文件中强制在 SWIG 生成的接口之前加载 DLL。

All of the information in the tutorial you linked to is still relevant even if you only have header files and a DLL. All you need is the headers and a library to link against it.

You have two choices then. Either you can make your build process link the SWIG generated code with the existing DLL, or you can use something like this:

%pragma(java) jniclasscode=%{
  static {
    try {
        System.loadLibrary("mylibrarythatIonlyhaveaDLL");
        System.loadLibrary("swigmodule");
    } catch (UnsatisfiedLinkError e) {
      System.err.println("Native code library failed to load. \n" + e);
      System.exit(1);
    }
  }
%}

in your interface file to force the DLL to be loaded before the SWIG generated interface.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文