場景
目前成都創(chuàng)新互聯(lián)已為上1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管運營、企業(yè)網(wǎng)站設(shè)計、興海網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
//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#調(diào)用的時候,指定了ref,導(dǎo)致傳遞的字符串在C++中提示字符串無效
解決
去掉ref
資料
ref 關(guān)鍵字通過引用(而非值)傳遞參數(shù)。 通過引用傳遞的效果是,
對所調(diào)用方法中的參數(shù)進行的任何更改都反映在調(diào)用方法中。 例如,如果調(diào)用方傳遞本地變量表達式或數(shù)組元素訪問表達式,
所調(diào)用方法會將對象替換為 ref 參數(shù)引用的對象,然后調(diào)用方的本地變量或數(shù)組元素將開始引用新對象。
傳遞到 ref 形參的實參必須先經(jīng)過初始化,然后才能傳遞。
通過上述資料,還是沒有理解