PDA

View Full Version : نحوه رفع خطای HashTable



setareh2013
شنبه 03 فروردین 1392, 14:09 عصر
با سلام
من یک قطعه کد نوشتم به صورت زیر :
public unsafe staticint ProbeHash(Player.enmColour colour)
{
ulong HashCodeA = Board.HashCodeA;
ulong HashCodeB = Board.HashCodeB;
if (colour == Player.enmColour.Black)
{
HashCodeA |= 0x1;
HashCodeB |= 0x1;
}
else
{
HashCodeA &= 0xFFFFFFFFFFFFFFFE;
HashCodeB &= 0xFFFFFFFFFFFFFFFE;
}
m_intProbes++;
fixed (HashEntry* phashBase = &m_arrHashEntry[0])
{
HashEntry* phashEntry = phashBase;
phashEntry += ((uint)(HashCodeA % HASH_TABLE_SIZE));
if (phashEntry->HashCodeA == HashCodeA && phashEntry->HashCodeB == HashCodeB)
{
m_intHits++;
return phashEntry->Points;
}
}
return UNKNOWN;
}
نمی دونم چرا وقتی تحت وب این کد رو می نویسم خطای زیر رو میده :

Error 1 Unsafe code may only appear if compiling with /unsafe C:\Users\Parnian\Documents\Visual Studio 2010\WebSites\chess online\App_Code\HashTableCheck.cs 76 31 C:\...\chess online\
نمی دونین مشکل از کجاست ؟

setareh2013
یک شنبه 04 فروردین 1392, 17:27 عصر
چه کار کنم که به unsafe خطا نگیره ؟

setareh2013
یک شنبه 04 فروردین 1392, 18:29 عصر
توی یک سایت نوشته بود که کار زیر رو انجام بدم :
You get Unsafe code may only appear if compiling with /unsafe error when trying to debug or build unsafe code in Visual Studio.


To fix this error, you need to set your project setting to build and/or debug unsafe code.


To set unsafe build, go to your project in Solution Explorer.


Right click on Project Name and select Properties.


Go to Build tab and select "Allow unsafe code"
ولی در ای اس پی دات نت گزینه allow unsafe code رو نداره .
یه جای دیگه خوندم کد زیر رو به web .config اضافه کنم . ولی به web.config هم خطا داد :
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" compilerOptions="/unsafe" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</compilers>
لطفا کمک کنید .خسته شدم از بس دنبال جواب گشتم .

setareh2013
چهارشنبه 07 فروردین 1392, 11:23 صبح
کسی نمی تونه راهنمایی کنه ؟