簡體   English   中英

使用C#指針遷移函數C ++

[英]Migrate function C++ with pointers to C#

我在C ++中有一個返回指針值的函數:

fPosFirst( int &aId, char *aNname, char *aDirectory );

我在C#中的語法是:

fPosFirst(ref int aId,  String aNname,  String aDirectory);

該函數返回id而不是任何人都知道的字符串參數?

如果希望將參數用於返回值,則將其標記為refout

例如

fPosFirst(ref int aId,  out string aNname,  out string aDirectory);

假設本機函數不“返回指針”,而是將字符寫入由aNname和aDirectory指定的內存位置,則您應該能夠將具有適當容量的StringBuilder傳遞給本機函數:

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);

如果要在方法內分配給它們,並使這些值在方法外可用out則需要使字符串參數為refout

您需要在參數名稱之前使用out關鍵字( 例如 )。 但這實際上不是C#的好習慣

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM