gpt4 book ai didi

python - 通过引用返回 vector

转载 作者:太空宇宙 更新时间:2023-11-04 13:49:37 26 4
gpt4 key购买 nike

我有一个接收字符串 vector 的 SWIG 类 - vector<string> (CSCHSwig),这个类使用了一个。 LIB 另一个项目,它通过引用返回另一个字符串 vector 。

CSCHSwig.cpp

#include CSCHSwig.h
vector < string> CSCHSwig::CSwig(vector < string> a_InputArgs){

vector < string> a_OutputArgs;
int resposta = ClassLib->SendRequest(a_InputArgs, a_OutputArgs);

return a_OutputArgs
}

CSCHSwig.h

#include < string>
#include < vector>
using namespace std;

class CSCHSwig { public:
CSCHSwig();
virtual ~CSCHSwig();
vector <string> CSwig(const vector < string> a_InputArgs);
}

CSCHSwig.i

/* File : CSCHSwig.i */

%module CSCHSwig

%{
#include "..\..\..\Incl\CSCHSwig.h"
%}

%include <std_string.i>
%include <std_vector.i>
%include "typemaps.i"


namespace std {
%template(a_OutpuArgs) vector < string>;
}


%include "..\..\..\Incl\CSCHSwig.h"

类库的一个例子:类库.cpp

int ClassLib::SendRequest(const vector < string>& a_InputArgs, vector < string>& a_OutputArgs, {
vector < string> Vector;

Vector.push_back("pReturnStatus");
Vector.push_back("1");

a_OutputArgs = Vector;

return 1;
}

类库.h

class ClassLib
{
public:
int SendRequest(const vector < string>& a_InputArgs, vector < string>& a_OutputArgs);
}

我已经测试了 SWIG 类并且它运行良好,我通过传递字符串列表的 python 调用 CSwig 方法。问题是当 CSwig 方法调用方法 SendRequest ClassLib 时。 int resposta = ClassLib->SendRequest(a_InputArgs, a_OutputArgs);

执行终止,不返回任何错误。当 a_OutputArgs 参数在方法内处理并返回字符串数组时,我犯下的“错误”测试就会发生。也许我需要在 .i 文件中添加一些内容才能使其正常工作。

最佳答案

我发现了问题。我使用 MS Visual Studio 2008,设置是不同的项目。在Project Properties > General > Use of MFC set:

在共享 DLL 中使用 MFC

关于python - 通过引用返回 vector<string>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24016149/

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