gpt4 book ai didi

.net - 在 C++/CLI 中,如何声明和调用带有 'out' 参数的函数?

转载 作者:行者123 更新时间:2023-12-02 12:47:22 24 4
gpt4 key购买 nike

我有一个函数可以将一个字符串解析为两个字符串。在 C# 中我会这样声明:

void ParseQuery(string toParse, out string search, out string sort)
{
...
}

我会这样调用它:

string searchOutput, sortOutput;
ParseQuery(userInput, out searchOutput, out sortOutput);

当前项目必须在 C++/CLI 中完成。我试过了

using System::Runtime::InteropServices;

...

void ParseQuery(String ^ toParse, [Out] String^ search, [Out] String^ sort)
{
...
}

但如果我这样调用它:

String ^ searchOutput, ^ sortOutput;
ParseQuery(userInput, [Out] searchOutput, [Out] sortOutput);

我收到编译器错误,如果我这样调用它:

String ^ searchOutput, ^ sortOutput;
ParseQuery(userInput, searchOutput, sortOutput);

然后我在运行时收到错误。我应该如何声明和调用我的函数?

最佳答案

C++/CLI 本身不支持真正的“输出”参数,但您可以将引用标记为输出参数,以使其他语言将其视为真正的输出参数。

您可以对引用类型执行此操作:

void ReturnString([Out] String^% value)
{
value = "Returned via out parameter";
}

// Called as
String^ result;
ReturnString(result);

对于值类型:

void ReturnInt([Out] int% value)
{
value = 32;
}

// Called as
int result;
ReturnInt(result);

% 使其成为“ref”参数,OutAttribute 标记它仅用于输出值。

关于.net - 在 C++/CLI 中,如何声明和调用带有 'out' 参数的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/186477/

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