我有一些本机C++代码,我正在使用SWIG转换为Java,以便我的Java应用程序可以使用它.特别是有一些函数返回std :: vector.这是我的界面文件的片段:
%include "std_vector.i"
namespace std {
%template(Vector) vector<double>;
%template(Matrix) vector<vector<double> >;
}
%include "std_string.i"
Run Code Online (Sandbox Code Playgroud)
std_string.i而std_vector.i被列入我的,我使用痛饮的构建.我的第一个惊喜是Java输出包含了SWIG的"自有"版本的Vector类(与使用相反java.util.Vector).我真正的问题是从这些函数返回的Vector似乎不起作用.例如,我无法使用get()(有时崩溃程序)或size()返回负值的函数来检索其内容.我知道Vectors包含数据,因为我编写了相同函数的'String'版本,它们只是遍历Vectors(回到本机C++代码中)并以逗号分隔String值返回内容.虽然这是一个有效的解决方法,但最终我希望这能够正常工作,因为我能够接收和操纵Vectors.任何帮助/提示将非常感激.
在我的一个位置规则中,我试图重写URL:
rewrite ^ $topicredirecturi?$args permanent;
Run Code Online (Sandbox Code Playgroud)
$topicredirecturi 在映射文件中计算,映射例如URL等
http://www.topics.com/companies/cit-group-inc/index.html
Run Code Online (Sandbox Code Playgroud)
至
http://www.topics.com/companies/cit_group_inc/index.html
Run Code Online (Sandbox Code Playgroud)
当我使用URL参数发出请求时,例如:
http://www.topics.com/companies/cit-group-inc/index.html?rss=1
Run Code Online (Sandbox Code Playgroud)
我得到以下带有重复参数的重写URL:
http://www.topics.com/companies/cit_group_inc/index.html?rss=1&rss=1
Run Code Online (Sandbox Code Playgroud)
同样,URL
http://www.topics.com/companies/cit-group-inc/index.html?rss=1&bob=2
Run Code Online (Sandbox Code Playgroud)
被改写为
http://www.topics.com/companies/cit_group_inc/index.html?rss=1&bob=2&rss=1&bob=2
Run Code Online (Sandbox Code Playgroud)
有人知道这里会发生什么吗?