您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關C#中怎么修改動態鏈接庫,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
C#實現修改動態鏈接庫,將b修改為雙重指針:
public class RefComm
{
[DllImport("LibEncrypt.dll",
EntryPoint=" mySum ",
CharSetCharSet=CharSet.Ansi,
CallingConventionCallingConvention=CallingConvention.StdCall)]public static extern string mySum (string a, ref string b);
}
在C#中調用測試:
string strDest=""; string strTmp= RefComm. mySum("12345", ref strDest);
運行查看結果 strTmp 和 strDest 均為"12345",調用正確。實現了函數出口參數正確輸出結果。
C#實現修改動態鏈接庫,實現整數參數的輸出:
public class RefComm
{
[DllImport("LibEncrypt.dll",
EntryPoint=" mySum ",
CharSetCharSet=CharSet.Ansi,
CallingConventionCallingConvention=CallingConvention.StdCall)]public static extern int mySum (int a, int b,ref int c);
}
經過以上的試驗,基本掌握了如何定義動態庫函數以及如何在 C# 定義導入,有此基礎,很快我實現了變長加密函數在 C# 中的調用,至此目標實現。
在 C# 中調用 C++ 編寫的動態鏈接庫函數,如果需要出口參數輸出,則需要使用指針,對于字符串,則需要使用雙重指針,對于 C# 的導入定義,則需要使用引用(ref)定義。
對于函數返回值,C# 導入定義和 C++ 動態庫函數聲明定義需要保持一致,否則會出現函數調用失敗。定義導入時,一定注意 CharSet 和 CallingConvention 參數,否則導致調用失敗或結果異常。運行時,動態鏈接庫放在 C# 程序的目錄下即可,我這里是一個 C# 的動態鏈接庫,兩個動態鏈接庫就在同一個目錄下運行。
上述就是小編為大家分享的C#中怎么修改動態鏈接庫了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。