0sk1 1879 Mana Bug Fixlerken Aldığım Hata 2 Error Resim İçerde

Kayıtlı Üye
Katılım
16 Eylül 2012
Mesajlar
296
Merhaba Arkadaşlar



0sk1 Dosyalarında Mana Silinme Bugunu Fixlemek Üzreyiz Fakat 2 Adet Error Alıyoruz Parantezlerde Sanırsam PRoblem Var Bunu Nasıl Çözebiliriz ?







f425u.jpg
 
Kayıtlı Üye
Katılım
27 Mart 2012
Mesajlar
690
selam öncelikle neden paylaşıyorum onu anlatıyım osman denen ********le takas yaptığımızda bana karşılık olarak bir kaç şey vermesi gerekiyordu konuşmanın başında karkter bilgilieri bozuluyor bende bunu düzeltmek için stritemleri 400 yapıyorum demiştim ozamanda banka 8.sayfa bozuluyor demiştim oda o kolay değiştirirz fln demişti bende euko sistemini yapıcaktım ona geldi bide packed logger istedi verdim neyse girdi yaptı eukoyu dedim ver işte bunları dedi daha sonra ben onun o oldugunu bilmiyodum vermem fln fln sonra dedi en sonunda packed logger source verdim verdi geri kalanıda vermedi.ozaman verdiği kodu gösteriyim size.

Kod:

int CIOCPort::GetNewSid()

{

if( m_SidList.empty() ) {

TRACE("SID List Is Empty !!\n");

return -1;

}



int ret = m_SidList.front();

m_SidList.pop_front();

// ret = m_SidList.front();

// m_SidList.pop_front();



return ret;

}

// koyduğum yerlere socketid sinden tekrar oluşturmayı yapmış yani 1 user için 2 socket açıyor ufak bir havıza sorunu için yaptığı şeye bakın bide bana en düzgünü bu diyordu başka türlü olmaz ...

Kod:

BOOL CEbenezerDlg::InitializeMMF()

{

BOOL bCreate = TRUE;

CString logstr;



DWORD filesize = MAX_USER * 4000; // 1¸í´ç 3000 bytes À̳» ¼Ò¿ä

m_hMMFile = CreateFileMapping ( (HANDLE)0xFFFFFFFF, NULL, PAGE_READWRITE, 0, filesize, "KNIGHT_DB" );



if (m_hMMFile != NULL && GetLastError() == ERROR_ALREADY_EXISTS)

{

m_hMMFile = OpenFileMapping( FILE_MAP_ALL_ACCESS, TRUE, "KNIGHT_DB" );

if( m_hMMFile == NULL ) {

logstr = "Shared Memory Load Fail!!";

m_hMMFile = INVALID_HANDLE_VALUE;

return FALSE;

}

bCreate = FALSE;

}

logstr = "Shared Memory Create Success!!";

m_StatusList.AddString( logstr );



m_lpMMFile = (char *)MapViewOfFile (m_hMMFile, FILE_MAP_WRITE, 0, 0, 0);

if( !m_lpMMFile )

return FALSE;

memset( m_lpMMFile, NULL, filesize );



m_bMMFCreate = bCreate;



CUser* pUser = NULL;

for(int i=0; i< MAX_USER; i++)

{

pUser = (CUser*)m_Iocport.m_SockArrayInActive;

if( pUser ) {

pUser->m_pUserData = (_USER_DATA*)(m_lpMMFile + i*4000); // 1 Person Offset are 4000 bytes

}

}



return TRUE;

}

// 1 Person Offset are 4000 bytes

yukarada dediği gibi 1 kullanıcı için 4000byte lık alan açılıyor user_data array ınıda tamer stritemi 1200 olarak genişlettiği için ve bu malda tamerin source larını kullanıp o bölümde oynama yapmadığı için böyle bir sorun olmuştu

sorunun çözümü basit 4000 yerine oraya _USER_DATA struct unun lenght ini yazıcaz yani.

Kod:

DWORD filesize = MAX_USER * sizeof(_USER_DATA)

ve

Kod:

pUser->m_pUserData = (_USER_DATA*)(m_lpMMFile + i*sizeof(_USER_DATA));

bundan 4 tane yerde var 2 si aujard 2si ebenezer

Kod:

CEbenezerDlg::InitializeMMF()

CAujardDlg::InitializeMMF()



Alıntı





ensar buna göre uyarladıgın zaman zatırlar bozuluyo kanka neronun source yi ıncele bu bölümü bul :)
 
Üst Alt
Reklam
Reklam