VC的嵌入ASM的方法 #define CallBaseAddr 0x962AC4 #define SkillAttackAddr 0x457680 void maindlg::SkillAttack(long SkillID) { __asm { pushad mov eax,DWORD ptr ds:[CallBaseAddr] mov eax, DWORD ptr ds:[eax+0x1c] mov eax, DWORD ptr ds:[eax+0x20] mov ecx,eax push -1 push 0 push 0 mov eax, SkillID push eax mov eax,SkillAttackAddr call eax popad } } VB的嵌入汇编的方法 Sub SkillAttack(SkillID As Long, GameProcId As Long) Dim asm As New clsASM Const Address = &H457680 Const Base_Addr = &H962AC4 With asm .Pushad .Mov_EAX_DWORD_Ptr Base_Addr .Mov_EAX_DWORD_Ptr_EAX_Add &H1C .Mov_EAX_DWORD_Ptr_EAX_Add &H20 .Mov_ECX_EAX .Push -1 .Push 0 .Push 0 .Mov_EAX SkillID .Push_EAX .Mov_EAX Address .Call_EAX .Popad .ret End With asm.inject GameProcId asm.Run_ASM GameProcId, 0 asm.free GameProcId, 0 End Sub