gpt4 book ai didi

java - SWIG C++ 结构到 java

转载 作者:行者123 更新时间:2023-11-28 08:24:09 29 4
gpt4 key购买 nike

我正在尝试让一个简单的 SWIG 示例工作,该示例使用结构作为返回类型,但我生成的文件不正确。我的文件看起来像这样。

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

MyHeader.h
struct MyHeader {
int x;
}

我的 swig 接口(interface)文件是:

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

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

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

如果我的方法返回一个原语,它工作正常,但不适用于结构。我在 Windows 上运行 swig.exe -java -c++ MyModule.i

编辑:我想我也需要在 .i 文件中声明一个结构。有人可以证实(或质疑)吗?谢谢。

谢谢,杰夫

最佳答案

是的,您还需要在接口(interface)文件中声明该结构。

试试这个:

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

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

在使用它的代码之前声明结构也更安全。

关于java - SWIG C++ 结构到 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4651473/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com