首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在我的主类中使用SWIGTYPE_p_CHAR类?

如何在我的主类中使用SWIGTYPE_p_CHAR类?
EN

Stack Overflow用户
提问于 2012-08-09 17:55:54
回答 1查看 288关注 0票数 1

我使用了类型映射:

代码语言:javascript
运行
复制
%include "typemaps.i"

%apply SWIGTYPE * {char *deci};

这是SWIG生成的proxy类:

代码语言:javascript
运行
复制
public class SWIGTYPE_p_char {
    private long swigCPtr;

    protected SWIGTYPE_p_char(long cPtr, boolean futureUse) {
        swigCPtr = cPtr;
    }

    protected SWIGTYPE_p_char() {
        swigCPtr = 0;
    }

    protected static long getCPtr(SWIGTYPE_p_char obj) {
        return (obj == null) ? 0 : obj.swigCPtr;
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-09 18:34:34

这看起来微不足道,但你有没有尝试过:

代码语言:javascript
运行
复制
SWIGTYPE_p_char my_p_char;

毕竟,该类所包含的只是指针地址的一个长整型表示

显然,您只能将其用于返回char*或将char*参数用作伪返回值的c函数

如果您想要使用char*输入参数,那么您很可能必须编写某种帮助函数

我最近用SWIG封装了这个函数原型:

代码语言:javascript
运行
复制
int load_config(const char *fn, Config *cfg);

它将数据从字符串(char*)指定的文件加载到我的配置数据结构中

我可以用下面这行代码从Java调用它:

代码语言:javascript
运行
复制
example.load_config("test.cfg", cfg);

或者:

代码语言:javascript
运行
复制
String cfg_file = "test.cfg";
example.load_config(cfg_file, cfg);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11880848

复制
相关文章

相似问题

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