typedef BYTE JmpCode[8];是什么意思,请高手解释一下

huangmin314 2003-08-20 03:54:08
typedef BYTE JmpCode[8];是什么意思,请高手解释一下
...全文
106 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ablefirst 2003-11-12
  • 打赏
  • 举报
回复
类型自定义。
niukl 2003-11-12
  • 打赏
  • 举报
回复
道歉,以下为错误!

我感觉JmpCode没有定义过!要是有如下的声明就应该正确了:

typedef JmpCode char; //这时JmpCode 相当于 char 的数据类型

typedef BYTE JmpCode[8]; //就有二楼的结论了!

不过,我建议不要重新定议 BYTE 的数据类型!
wy2001wy 2003-11-12
  • 打赏
  • 举报
回复
学习,感觉一楼说得有理.
alornwolf 2003-11-12
  • 打赏
  • 举报
回复
qinxiaogang(qinxg) ( ) 信誉:100

说的没错!
qinxiaogang 2003-11-12
  • 打赏
  • 举报
回复
晕!!
typedef 只是定义类型,不是变量!!
typedef BYTE JmpCode[8];之后JumCode可以当类型用
JumCode a,b[3];则a是BYTE[8],b是BYTE[8][3]
yintongshun 2003-11-12
  • 打赏
  • 举报
回复
如果写成
typedef struct Student
{
CString csName;
BOOL bSex;
}JmpCode [100];
你明白了吧
把struct Student
{
CString csName;
BOOL bSex;
}替换为BYTE就知道了
就是JmpCode 数组的每个元素都是BYTE的
niukl 2003-11-12
  • 打赏
  • 举报
回复
我感觉JmpCode没有定义过!要是有如下的声明就应该正确了:

typedef JmpCode char; //这时JmpCode 相当于 char 的数据类型

typedef BYTE JmpCode[8]; //就有二楼的结论了!

不过,我建议不要重新定议 BYTE 的数据类型!
databasesql 2003-11-12
  • 打赏
  • 举报
回复
我也想知道什么意思,哪位高人可以告诉我,
我看后总感觉这是错的!
有什么用?
li_qingsong 2003-11-12
  • 打赏
  • 举报
回复
:)

typedef BYTE JmpCode[100];楼上怎么解释?

其实这样是定义一个数据类型,有100各单元,每个单元一个字节。
mahatma_cn 2003-08-20
  • 打赏
  • 举报
回复
就是说可以很方便的访问一个字节中每一位
JmpCode[0]
JmpCode[1]
JmpCode[2]
JmpCode[3]
JmpCode[4]
JmpCode[5]
JmpCode[6]
JmpCode[7]
代码完全远程。 可以在XP WIN7 WIN764 WIN2003 等操作系统上成功实现修改进程路径。 已经封装成类,使用及其方便。 部分代码: 头文件: #ifndef ModifyProcessPath_h__ #define ModifyProcessPath_h__ // 结构定义 typedef struct _PROCESS_BASIC_INFORMATION { DWORD ExitStatus; ULONG PebBaseAddress; ULONG AffinityMask; LONG BasePriority; ULONG UniqueProcessId; ULONG InheritedFromUniqueProcessId; } PROCESS_BASIC_INFORMATION, *PPROCESS_BASIC_INFORMATION; // API声明 typedef LONG (__stdcall *PZWQUERYINFORMATIONPROCESS) ( HANDLE ProcessHandle, ULONG ProcessInformationClass, PVOID ProcessInformation, ULONG ProcessInformationLength, PULONG ReturnLength ); class CModifyProcessPath { public: CModifyProcessPath(); BOOL Create(); BOOL ModifyProcessPath(LPCTSTR szPath); BOOL CamouflageExplorerPath(); }; #endif // ModifyProcessPath_h__ CPP部分代码: #include "StdAfx.h" #include "ModifyProcessPath.h" namespace MODIFY_PROCESS { wchar_t m_szModulePath[MAX_PATH]; DWORD dwGetModuleFileNameWAddress; DWORD dwModuleBaseAddress; //E9 (目标地址-当前地址 - 5) #pragma pack(1) typedef struct _JMPCODE { BYTE bJmp; DWORD dwAddr; }JMPCODE,*LPJMPCODE; #pragma pack() DWORD WINAPI MGetModuleFileNameW(HMODULE hModule,wchar_t * lpFilename,DWORD nSize); }; using namespace MODIFY_PROCESS; // 为了不影响在进程内使用 GetModuleFileNameW ,故hook之,返回正确的路径。 DWORD WINAPI MODIFY_PROCESS::MGetModuleFileNameW(HMODULE hModule,wchar_t * lpFilename,DWORD nSize) { typedef DWORD(WINAPI *MGetModuleFileNameWT)(HMODULE,LPWCH,DWORD); MGetModuleFileNameWT pMGetModuleFileNameW; pMGetModuleFileNameW = (MGetModuleFileNameWT)dwGetModuleFileNameWAddress; if(hModule == NULL || hModule ==(HMODULE)MODIFY_PROCESS::dwModuleBaseAddress) { StringCbCopyW(lpFilename,nSize,m_szModulePath); return wcslen(m_szModulePath); } return pMGetModuleFileNameW(hModule,lpFilename,nSize); } CModifyProcessPath::CModifyProcessPath() { } BOOL CModifyProcessPath::Create() { ZeroMemory(MODIFY_PROCESS::m_szModulePath,sizeof(MODIFY_PROCESS::m_szModulePath)); MODIFY_PROCESS::dwGet

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧