PDA

View Full Version : خطاي attempt to read or write protected memory



happy65_sh
دوشنبه 03 بهمن 1390, 22:13 عصر
سلام
يه تابعي دارم كه اگر چند بار اجراش كنم خطاي زير را برميگرداند:


Attempt to read or write protected memory.This is often an indication that other memory is corrupt

دارم يك فايل ايجاد ميكنم كه از straemwriter استفاده كرده ام و در چند تا از write هايم اين تابع را فراخواني كرده ام .يكي دوبار اول مشكلي نداره.اگر دوستان نظري بدهند ممنون ميشم.

mp_mp353
دوشنبه 03 بهمن 1390, 22:20 عصر
میشه یک قسمت از تابع رو قرار بدید شاید بشه کمک کرد. به نظر من به این شکل مشکل درست فهمیده نمیشه. یا یکم بیشتر توضیح بدبد. ممنون

happy65_sh
سه شنبه 04 بهمن 1390, 10:04 صبح
دوست عزيز
در واقع هدف من ايجاد ديسكت بيمه به كمك يك dll است.براي اين كار كد زير رانوشته ام:



StrewmWriter w=new StreamWriter(mypath+".dbf",false,Encoding.Default);
while(dr.Read())
{
w.Write(dr[0].ToString();
w.Write(Tabdil(dr[1].ToString());
w.Write(Tabdil(dr[2].ToString());
w.Write(Tabdil(dr[3].ToString());
w.Write(Tabdil(dr[4].ToString());
w.Write(dr[5].ToString());
}
w.close();
dr.close();


و تابع Tabdil :


private string Tabdil(string x)
{
string matn="";
CONVERTLib.Convertor con= new CONVERTLib.ConvertorClass();
matn=con.WinToIran(x);
return matn;
}


خوب dr را قبلا پر كرده ام و اطلاعات شخص داخلش هست .براي نفر اول بدون هيچ مشكلي انجام ميشه.اما وقتي نوبت نفر بعدي ميرسه و وارد تابع tabdil ميشه اين خطا را بر ميگردونه.
در ضمن dll را هم ضميمه ميكنم.

happy65_sh
سه شنبه 04 بهمن 1390, 21:19 عصر
دوستان عزيز كسي نظري نداشت

Salar Ashgi
سه شنبه 04 بهمن 1390, 22:54 عصر
به لینک های زیر سری بزنید :



http://social.msdn.microsoft.com/Forums/hu-HU/netfxsetup/thread/0a0ef2e6-80f8-4982-95da-b4e05072771f
http://jtstroup.net/post/Attempted-to-read-or-write-protected-memory-This-is-often-an-indication-that-other-memory-is-corrupt.aspx
http://stackoverflow.com/questions/596413/attempted-to-read-or-write-protected-memory

موفق باشید ./

zare69
دوشنبه 24 بهمن 1390, 09:57 صبح
دوستان سلام
من یک قسمتی از پروژه ام را با کد های Xaml کد نویسی کردم ولی زمانی که اجرا می کنم خطا زیر را می دهد .برنامه را روی چند سیستم دیگه تست کردم ولی این مشکل را نداشت این خطا برای چیه ؟ و چه جوری حلش کنم؟
Attempted to read or write protected memory. This is often an indication that other memory is corrupt
خیلی ممنون میشم راهنمایی کنید .

hamid.karimy
دوشنبه 24 بهمن 1390, 11:25 صبح
این ارور رو همه می دونین بخاطر پر شدن stack میده .در مورد بالایی پس از اجرای streamwriter ، کدflush رو ران نکردید دوست عزیز.این باعث میشه که stack مربوطه اشغال بمونه.پس در آخر کدتون
w.Flush یادتون نره ،همچنین dr که دقیقا نمی دونم چیه هم احتمالا همین اتفاق براش افتاده.
دوست عزیزی هم که با xaml کد نوشتی،اینکه رو سیستم دیگران جواب میده شاید بخاطر قدرت سیستم اونهاست یا شایدم کدی که نوشتی اونجا زیاد ران نشده.نمونه کدت رو اینجا قرار بده تا ببینیم کجاش باعث پر شدن رم میشه