簡體   English   中英

禁用從char *到java.lang.String的轉換

[英]Disable conversion from char* to java.lang.String

在C端,我有類似

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

我想使用carrays.i SWIG模塊獲取Java端的值。 但是SWIG為我生成了諸如fn(String s) 如何防止這種轉換使類似fn(char_p s)東西使用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);

暫無
暫無

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

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