如果您是奇迹私服的忠实玩家,请点击设置为首页! 我们每日更新最新奇迹私服信息,点击设置为您的收藏!
奇迹私服 奇迹心情故事 奇迹经验心得 奇迹玩家交流 奇迹私服技术 客户自助修改广告 广告联系 发布私服
GS模块][汇编到VC++]第
GS模块][汇编到VC++]第一


正题:
004FDFA0 /> \55 PUSH EBP
004FDFA1 |. 8BEC MOV EBP,ESP
004FDFA3 |. 83EC 44 SUB ESP,44
004FDFA6 |. 53 PUSH EBX
004FDFA7 |. 56 PUSH ESI
004FDFA8 |. 57 PUSH EDI
004FDFA9 |. 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
004FDFAC |. A3 5C4EB50A MOV DWORD PTR DS:[AB54E5C],EAX
004FDFB1 |. 6A 00 PUSH 0 ; /lParam = NULL
004FDFB3 |. 8B4D 08 MOV ECX,DWORD PTR SS:[EBP+8] ; |
004FDFB6 |. 51 PUSH ECX ; |hInst
004FDFB7 |. 6A 00 PUSH 0 ; |hMenu = NULL
004FDFB9 |. 6A 00 PUSH 0 ; |hParent = NULL
004FDFBB |. 6A 00 PUSH 0 ; |Height = 0
004FDFBD |. 68 00000080 PUSH 80000000 ; |Width = 80000000 (-2147483648.)
004FDFC2 |. 6A 00 PUSH 0 ; |Y = 0
004FDFC4 |. 68 00000080 PUSH 80000000 ; |X = 80000000 (-2147483648.)
004FDFC9 |. 68 0000CF00 PUSH GameServ.00CF0000 ; |Style = WS_OVERLAPPED|WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_SYSMENU|WS_THICKFRAME|WS_CAPTION
004FDFCE |. 68 F44DB50A PUSH GameServ.0AB54DF4 ; |WindowName = "GameServer"
004FDFD3 |. 68 904DB50A PUSH GameServ.0AB54D90 ; |Class = "GAMESERVER"
004FDFD8 |. 6A 00 PUSH 0 ; |ExtStyle = 0
004FDFDA |. FF15 BCA1B70A CALL DWORD PTR DS:[<&USER32.CreateWindow>; \CreateWindowExA

/-------------------------------------------------------------------------------------------

BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
HWND hWnd;

hInst = hInstance; // Store instance handle in our global variable

hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

if (!hWnd)
{
return FALSE;
}

//ShowWindow(hWnd, nCmdShow);下面最大化窗口..
//自定义控件函数..没多大用!为了和原代码一样!所以才添加上来..
InitCommonControls();

ShowWindow(hWnd,SW_SHOWMAXIMIZED);
UpdateWindow(hWnd);

return TRUE;




004FDFED |> \8B55 0C MOV EDX,DWORD PTR SS:[EBP+C]
004FDFF0 |. 52 PUSH EDX ; /ShowState
004FDFF1 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; |
004FDFF4 |. 50 PUSH EAX ; |hWnd
004FDFF5 |. FF15 14A2B70A CALL DWORD PTR DS:[<&USER32.ShowWindow>] ; \ShowWindow
004FDFFB |. 8B4D FC MOV ECX,DWORD PTR SS:[EBP-4]
004FDFFE |. 51 PUSH ECX ; /hWnd
004FDFFF |. FF15 C0A1B70A CALL DWORD PTR DS:[<&USER32.UpdateWindow>; \UpdateWindow
004FE005 |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
004FE008 |. 8915 584EB50A MOV DWORD PTR DS:[AB54E58],EDX
004FE00E |. B8 01000000 MOV EAX,1
004FE013 |> 5F POP EDI
004FE014 |. 5E POP ESI
004FE015 |. 5B POP EBX
004FE016 |. 8BE5 MOV ESP,EBP
004FE018 |. 5D POP EBP
004FE019 \. C3 RETN
(STOP)

[继续GS模块][汇编到VC++]第二



004FDA9D . 6A 6D PUSH 6D ; /TableName = 6D
004FDA9F . 8B55 08 MOV EDX,DWORD PTR SS:[EBP+8] ; |
004FDAA2 . 52 PUSH EDX ; |hInst
004FDAA3 . FF15 D8A1B70A CALL DWORD PTR DS:[<&USER32.LoadAccelera>; \LoadAcceleratorsA

hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_GAMESERVER);

==============================================
这里的代码都是和我的代码里粘出来的不是随便写的
开头这一段已经完全正常..里面的变量啊什么都是我反汇编翻译的

==================================================


00512B50 |. 6A 10 push 10 ; /Style = MB_OK|MB_ICONHAND|MB_APPLMODAL
00512B52 |. 68 4C986600 push 0066984C ; |Title = "Error"
00512B57 |. 68 1CFF6600 push 0066FF1C ; |Text = "Cannot find M:\ Drive."
00512B5C |. 6A 00 push 0 ; |hOwner = NULL
00512B5E |. FF15 1082D906 call [<&USER32.MessageBoxA>] ; \MessageBoxA


00512B15 |. 6A 10 push 10 ; /Style = MB_OK|MB_ICONHAND|MB_APPLMODAL
00512B17 |. 68 4C986600 push 0066984C ; |Title = "Error"
00512B1C |. 68 50FF6600 push 0066FF50 ; |Text = "Webzen Mu Game Server is already Running."
00512B21 |. 6A 00 push 0 ; |hOwner = NULL
00512B23 |. FF15 1082D906 call [<&USER32.MessageBoxA>] ; \MessageBoxA


00512B3F |. 51 push ecx ; /pFindFileData = 0012FDD0
00512B40 |. 68 38FF6600 push 0066FF38 ; |FileName = "M:\commonserver.cfg"
00512B45 |. FF15 DC7CD906 call [<&KERNEL32.FindFirstFileA>] ; \FindFirstFileA


翻译下来为;
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
//-------------------------------变量常量声明-----------------------------------------------
char MutexName[0xFF]="WZ_MU_GS_MUTEX";
HANDLE MuteHandle=::CreateMutex(NULL,0,MutexName);
DWORD MutexErr=::GetLastError();

MSG msg;
HACCEL hAccelTable;

WIN32_FIND_DATA pFindFileData;
HANDLE FindFistFileHandle=NULL;
//---------------------------------------开始代码------------------------------------------------




if(MutexErr==0x0B7)
{
::CloseHandle(MuteHandle);
MessageBox(NULL,"Webzen Mu Game Server is already Running.","Error",MB_OK|MB_ICONHAND|MB_APPLMODAL);
return 0;
}
if(gLanguage==0)
{
FindFistFileHandle=::FindFirstFile("M:\\commonserver.cfg",&pFindFileData);
if(FindFistFileHandle==INVALID_HANDLE_VALUE)
{
MessageBox(NULL,"Cannot find M:\\ Drive.","Error",MB_OK|MB_ICONHAND|MB_APPLMODAL);
FindClose(FindFistFileHandle);
return 0;
}
LoadString(hInstance, GameServer, szTitle, Count);
LoadString(hInstance, GAMES, szWindowClass, Count);
MyRegisterClass(hInstance);

// Perform application initialization:
if (!InitInstance (hInstance, nCmdShow))
{
return FALSE;
}

hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_GAMESERVER);

// Main message loop:
while (GetMessage(&msg, NULL, 0, 0))
{
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
GiocpInit();
return msg.wParam;
}
//------------------------------结束代码----------------------------------------------------------------
return 0;
}





void ReadServerInfo()
{
char RSIPath[0xFF]="..\\data\\Serverinfo.dat";


IsFile(&RSIPath[0]);

//装载信息配置:
GetPrivateProfileString("GameServerInfo","ServerName","",szServerName,50,RSIPath);
gGameServerCode= ::GetPrivateProfileInt("GameServerInfo","ServerCode",0,RSIPath);
bCanConnectMember=::GetPrivateProfileInt("GameServerInfo","ConnectMemberLoad",0,RSIPath);


return;
}


上面的代码汇编相近为:

004F5575 . 50 PUSH EAX ; /IniFileName
004F5576 . 6A 00 PUSH 0 ; |Default = 0
004F5578 . 68 00696100 PUSH GameServ.00616900 ; |Key = "ServerType"
004F557D . 68 EC686100 PUSH GameServ.006168EC ; |Section = "GameServerInfo"
004F5582 . FF15 D09CB70A CALL DWORD PTR DS:[<&KERNEL32.GetPrivate>; \GetPrivateProfileIntA
004F5588 . A3 8CF0780A MOV DWORD PTR DS:[A78F08C],EAX
004F558D . 68 10696100 PUSH GameServ.00616910 ; ASCII "commonserver.cfg"
004F5592 . B9 10ECFB09 MOV ECX,GameServ.09FBEC10
004F5597 . E8 7FDBF0FF CALL GameServ.0040311B
004F559C . 50 PUSH EAX ; /IniFileName
004F559D . 6A 00 PUSH 0 ; |Default = 0
004F559F . 68 E0686100 PUSH GameServ.006168E0 ; |Key = "Partition"
004F55A4 . 68 EC686100 PUSH GameServ.006168EC ; |Section = "GameServerInfo"
004F55A9 . FF15 D09CB70A CALL DWORD PTR DS:[<&KERNEL32.GetPrivate>; \GetPrivateProfileIntA
004F55AF . A3 90F0780A MOV DWORD PTR DS:[A78F090],EAX
004F55B4 . 68 10696100 PUSH GameServ.00616910 ; ASCII "commonserver.cfg"
004F55B9 . B9 10ECFB09 MOV ECX,GameServ.09FBEC10
004F55BE . E8 58DBF0FF CALL GameServ.0040311B
004F55C3 . 50 PUSH EAX ; /IniFileName
004F55C4 . 6A 00 PUSH 0 ; |Default = 0
004F55C6 . 68 D4686100 PUSH GameServ.006168D4 ; |Key = "Language"
004F55CB . 68 EC686100 PUSH GameServ.006168EC ; |Section = "GameServerInfo"
004F55D0 . FF15 D09CB70A CALL DWORD PTR DS:[<&KERNEL32.GetPrivate>; \GetPrivateProfileIntA
004F55D6 . A3 B8F0780A MOV DWORD PTR DS:[A78F0B8],EAX
004F55DB . B9 1873B60A MOV ECX,GameServ.0AB67318
004F55E0 . E8 E2CFF0FF CALL GameServ.004025C7
004F55E5 . 68 F9254000 PUSH GameServ.004025F9
004F55EA . A1 8CF0780A MOV EAX,DWORD PTR DS:[A78F08C]
004F55EF . 50 PUSH EAX
004F55F0 . 68 685E4B09 PUSH GameServ.094B5E68
004F55F5 . 68 408C6200 PUSH GameServ.00628C40 ; ASCII "0.99.60T"
004F55FA . 6A 00 PUSH 0
004F55FC . 8A0D 90F0780A MOV CL,BYTE PTR DS:[A78F090]
004F5602 . 51 PUSH ECX
004F5603 . 8B15 B8F0780A MOV EDX,DWORD PTR DS:[A78F0B8]
004F5609 . 52 PUSH EDX
004F560A . B9 1873B60A MOV ECX,GameServ.0AB67318
004F560F . E8 F7DBF0FF CALL GameServ.0040320B
004F5614 . 90 NOP
004F5615 . 90 NOP
004F5616 . 90 NOP
004F5617 . 90 NOP
004F5618 . 90 NOP
004F5619 . 90909090 DD 90909090
004F561D 90 DB 90
004F561E . 90909090 DD 90909090

 
您查看的文章来自3wMU奇迹私服网www.3wmu.com,如果您觉得不错的话请推荐给您的朋友!谢谢您的支持,我们会作的更好!
Copyright © 奇迹私服 2006-2007 All Rights Reserved.. <%=beian%>
Template designed by 3wMU. Optimized to 1024x768 to Firefox,Opera and MS-IE7.
本站发布的所有游戏信息,均来源于互联网,与本站立场无关,中文版权归3wMU奇迹私服发布网所有.本站提供发布网,家族网模版制作