簡體   English   中英

SWIG C ++結構到Java

[英]SWIG C++ structure to java

我試圖使一個簡單的SWIG示例工作,該示例使用結構作為返回類型,但是我生成的文件不正確。 我的文件如下所示。

SwigTest.h
#pragma once
#include "MyHeader.h"
class SwigTest
{
public:
    MyHeader testMe();
};

MyHeader.h
struct MyHeader {
    int x;
}

我的swig接口文件是:

%module MyModule
%{
#include "SwigTest.h"
#include "MyHeader.h"
%}
extern MyHeader testMe();

生成的JNI文件具有以下方法聲明

public class MyModuleJNI {
  public final static native long testMe();
}

如果我的方法返回一個原語,則可以正常工作,但不能與struct一起工作。 我在Windows上使用swig.exe -java -c++ MyModule.i

編輯:我想我也需要在.i文件中聲明一個結構。 有人可以確認(或提出異議)嗎? 謝謝。

謝謝,傑夫

是的,您還需要在接口文件中聲明該結構。

嘗試這個:

%module MyModule
%{
#include "MyHeader.h"
#include "SwigTest.h"
%}

%include "MyHeader.h"
%include "SwigTest.h"

在使用該結構的代碼之前聲明該結構也更安全。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM