SWIG C++-&燃气轮机;Java-typemapping拥有自己的string类,就像std::string一样
我正在努力使SWIG内置的SWIG C++-&燃气轮机;Java-typemapping拥有自己的string类,就像std::string一样,java,string,swig,Java,String,Swig,我正在努力使SWIG内置的std_string.I适应我自己的string类 我所做的: 假设我自己的string类名为my::space::string 将粘贴的std_string.i复制到我自己的.i文件中并替换 namespace std{bynamespace my{namespace space{ 小写stringbystring \include由\include 问题是,我得到了一个语法错误,我不明白,这是没有帮助的: wrapmystring.i:90: Error:
std_string.I
适应我自己的string类
我所做的:
- 假设我自己的string类名为my::space::string
- 将粘贴的
复制到我自己的std_string.i
文件中并替换.i
bynamespace std{
namespace my{namespace space{
- 小写
bystring
string
由\include
\include
wrapmystring.i:90: Error: Syntax error in input(1).
这是常量字符串&
类型映射部分的这一行:
%typemap(directorout,warning=SWIGWARN_TYPEMAP_THREAD_UNSAFE_MSG) const String &
%{ if(!$input) {
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
return $null;
}
const char *$1_pstr = (const char *)jenv->GetStringUTFChars($input, 0);
if (!$1_pstr) return $null;
/* possible thread/reentrant code problem */
static $*1_ltype $1_str;
$1_str = $1_pstr; <=================== syntax error points here
$result = &$1_str;
jenv->ReleaseStringUTFChars($input, $1_pstr); %}
%typemap(directorout,warning=SWIGWARN\u typemap\u THREAD\u UNSAFE\u MSG)常量字符串&
%{if(!$input){
SWIG_JavaThrowException(jenv,SWIG_JavaNullPointerException,“空字符串”);
返回$null;
}
常量字符*$1\pstr=(常量字符*)jenv->GetStringUTFChars($input,0);
如果(!$1pstr)返回$null;
/*可能的线程/可重入代码问题*/
静态$*1_ltype$1_str;
$1_-str=$1pstr;ReleaseStringUTFChars($input,$1pstr);%}
知道为什么它在std_string.i
中工作而不在我自己的类中工作吗