C# 迁移函数C++;带有指向C的指针# 我有C++函数返回指针值​​: fPosFirst( int &aId, char *aNname, char *aDirectory );

C# 迁移函数C++;带有指向C的指针# 我有C++函数返回指针值​​: fPosFirst( int &aId, char *aNname, char *aDirectory );,c#,.net,c++,C#,.net,C++,我在c#中的语法是: 该函数返回id,但不返回任何人都知道的字符串参数?如果希望参数用于返回值,请将其标记为或 例如 如果要在方法内分配字符串参数,并使这些值在方法外可用,则需要设置字符串参数ref或out。在参数名称()之前需要使用out关键字。但实际上,在C#中,这不是一个好的做法。假设本机函数不“返回指针”,而是将字符写入aNname和aDirectory指定的内存位置,则应该能够将具有适当容量的a传递给本机函数: void fPosFirst(ref int aId, StringBui

我在c#中的语法是:


该函数返回id,但不返回任何人都知道的字符串参数?

如果希望参数用于返回值,请将其标记为或

例如


如果要在方法内分配字符串参数,并使这些值在方法外可用,则需要设置字符串参数
ref
out

在参数名称()之前需要使用
out
关键字。但实际上,在C#

中,这不是一个好的做法。假设本机函数不“返回指针”,而是将字符写入aNname和aDirectory指定的内存位置,则应该能够将具有适当容量的a传递给本机函数:

void fPosFirst(ref int aId, StringBuilder aNname, StringBuilder aDirectory);
用法:


你能演示一下如何在C++中调用C++函数吗?欢迎来到,希望大家阅读。
fPosFirst(ref int aId,  out string aNname,  out string aDirectory);
void fPosFirst(ref int aId, StringBuilder aNname, StringBuilder aDirectory);
var aId = 0;
var aNname = new StringBuilder(260);
var aDirectory = new StringBuilder(260);

fPosFirst(ref aId, aNname, aDirectory);