您好,登錄后才能下訂單哦!
場景
//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 關鍵字通過引用(而非值)傳遞參數。 通過引用傳遞的效果是,
對所調用方法中的參數進行的任何更改都反映在調用方法中。 例如,如果調用方傳遞本地變量表達式或數組元素訪問表達式,
所調用方法會將對象替換為 ref 參數引用的對象,然后調用方的本地變量或數組元素將開始引用新對象。
傳遞到 ref 形參的實參必須先經過初始化,然后才能傳遞。
通過上述資料,還是沒有理解
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。