溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#傳遞字符串給C++不能用ref限定

發(fā)布時間:2020-06-21 10:31:02 來源:網絡 閱讀:5490 作者:fengyuzaitu 欄目:編程語言

場景

//DLL中申明
extern “C” __declspec(dllexport) int WINAPI Test(char astr2,char bstr2)
{
//改變astr2 bstr 2 ,astr1 bstr1不會被改變
return a+b;
}

DLL 需傳入char *類型
[DllImport(“MyDLL.dll")]
//傳入值
public static extern int mySum (ref string astr1, ref string bstr1);

說明
C#調用的時候,指定了ref,導致傳遞的字符串在C++中提示字符串無效

解決
去掉ref

資料
ref 關鍵字通過引用(而非值)傳遞參數(shù)。 通過引用傳遞的效果是,
對所調用方法中的參數(shù)進行的任何更改都反映在調用方法中。 例如,如果調用方傳遞本地變量表達式或數(shù)組元素訪問表達式,
所調用方法會將對象替換為 ref 參數(shù)引用的對象,然后調用方的本地變量或數(shù)組元素將開始引用新對象。
傳遞到 ref 形參的實參必須先經過初始化,然后才能傳遞。
通過上述資料,還是沒有理解

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI