自己转吧,指针空值为nil,->为.
解决方案 »
- wwFilterDialog属性问题请教
- 窗体如何显示输出结果
- delphi7用rave5做报表,当内容过多分页打印时,如何保证他们都有页眉页脚? 请帮忙!谢谢!
- 无状态的ClientDataSet修改后怎样保存更新?
- excle的几个问题 !
- 字符数据转化!!!!(顶有分)
- 困扰很多高手的问题,但我还是感觉有高手可以解决的,进来说吧,UP的都有分。。。
- 高分求记录块解决方法
- 如何设置临时文件夹目录?
- help:怎样解决EOleException:Bof或Eof有一个为真,或者当前记录已被删除、、
- Delphi2009下FastReport导出Excel 出现"TProgressbar property of range"
- sql.add的写法求助!!!!!!!!!!
PIMAGE_DATA_DIRECTORY pImportDir = NULL;
PCHAR pszDllName = NULL;
UINT nSize = 0;
PCHAR pData = NULL;
PCHAR pFunNum =NULL;
PIMAGE_THUNK_DATA32 pFirstThunk = NULL;
PIMAGE_IMPORT_BY_NAME pImportName = NULL; try
{
pImportDir = &m_pntHeaders->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT];
pImportDescriptor =(PIMAGE_IMPORT_DESCRIPTOR)RVAToPtr(pImportDir->VirtualAddress); // 遍历原始输入表
for (pData = m_pImportTable, pDescriptor = pImportDescriptor; pDescriptor->Name != 0; pDescriptor ++)
{
// 保存首THUNK数据的RVA地址
*(DWORD *)pData = pDescriptor->FirstThunk;
pData += sizeof(DWORD);
// 保存DLL名称长度(WORD)
pszDllName = (PCHAR)RVAToPtr(pDescriptor->Name);
*(BYTE *)(pData) = (BYTE)(strlen(pszDllName) ); //DLL字符串长度
pData += sizeof(BYTE);
//保存DLL字符串
memcpy(pData, pszDllName, strlen(pszDllName) + 1);
pData += strlen(pszDllName) + 1;
pFunNum = pData; //pFunNum 指向需要初始函数的数目
*(DWORD *)pFunNum =0; pData += sizeof(DWORD);//指向“BYTE |STRING|00|…”
就帮我转这些也行,有写地方不懂:*(DWORD *)pData ;pData += sizeof(DWORD); =(PIMAGE_IMPORT_DESCRIPTOR)RVAToPtr(pImportDir->VirtualAddress); 还请大家帮忙啊!
pImportDescriptor =(PIMAGE_IMPORT_DESCRIPTOR)RVAToPtr(pImportDir->VirtualAddress);
主要是上面的两句在delphi下怎么写?不会啊?
pImportDescriptor := PIMAGE_IMPORT_DESCRIPTOR(RVAToPtr(pImportDir.VirtualAddress));pData += sizeof(DWORD); => Inc(pData, SizeOf(DWORD));
pImportDescriptor := PIMAGE_IMPORT_DESCRIPTOR(RVAToPtr(pImportDir.VirtualAddress)); pData += sizeof(DWORD); => Inc(pData, SizeOf(DWORD));
比如for I := 0 to ExportEntry^.NumberOfFunctions - 1 do