gpt4 book ai didi

java - 禁用从 char* 到 java.lang.String 的转换

转载 作者:行者123 更新时间:2023-11-30 17:28:05 32 4
gpt4 key购买 nike

在C端我有类似的东西

void fn(char *s) {
if(s != NULL) {
sprintf(s, "some string");
}
}

我想使用 carrays.i SWIG 模块获取 java 端的值。但是 SWIG 为我生成了类似 fn(String s) 的东西。如何防止此类转换以使用 fn(char_ps) 之类的内容来使用 carrays 功能。

最佳答案

文档说 carrays.i 用于将 C 指针视为 Java 数组。此外,signed char 不会映射到String。因此,void fn(signed char *INOUT) 为您提供public final static native void fn(byte[] jarg1)

您在模块 .i 文件中覆盖 C 声明(可能在 C 头文件中):

%module test
%include "typemaps.i"
%include "carrays.i"

%{
extern void fn(char *);
%}
extern void fn(signed char *INOUT);

关于java - 禁用从 char* 到 java.lang.String 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26142469/

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