程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 嘗試讀取或寫入受保護的內存 。這通常指示其他內存已損壞。

C# 嘗試讀取或寫入受保護的內存 。這通常指示其他內存已損壞。

編輯:C#入門知識

在C#中調用別人的DLL的時候有時候出現 嘗試讀取或寫入受保護的內存 。這通常指示其他內存已損壞。

在傳值的時候還是用指針,再在C#中做轉換就好了。

解決辦法:


\[DllImport("APPLISTCC.dll")]
public static extern string TestFunc1(string param1);

string ret1 = TestFunc1("text");


改成:


[DllImport("APPLISTCC.dll")]
public static extern IntPtr TestFunc1(IntPtr par1);

IntPtr ptrIn = Marshal.StringToHGlobalAnsi("text");
IntPtr ptrRet = TestFunc1(ptrIn);
string retlust = Marshal.PtrToStringAnsi(ptrRet);



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved