之前一直觉得所谓的i++就是i = i + 1,今晚跟“大神”探讨的时候,被鄙视了,原来++首先一点,要确定数据类型的大小,如果是LPVOID的话,就编译不过。
事故现场:
TCHAR szIorTableInfo[4096] = { 0 };
PIMAGE_IMPORT_DESCRIPTOR PE_Import_Info = ( PIMAGE_IMPORT_DESCRIPTOR )RVA2RAW(PE_Info,PE_NT_Header->OptionalHeader.DataDirectory[1].VirtualAddress,PE_NT_Header);
DWORD dwImportSize = (DWORD )(PE_NT_Header->OptionalHeader.DataDirectory[1].Size);
while( 1 )
{
DWORD dwNameAddr = PE_Import_Info->Name;
PCHAR lpNameAddr =(PCHAR )RVA2RAW(PE_Info,dwNameAddr,PE_NT_Header);
TCHAR szDllName[16] = { 0 };
wsprintf(szDllName,TEXT("%S\r\n"),lpNameAddr);
wcscat_s(szIorTableInfo,szDllName);
PE_Import_Info++;//PE_Import_Info = PE_Import_Info + sizeof(IMAGE_IMPORT_DESCRIPTOR);
if (PE_Import_Info->Characteristics == 0)
{
break;
}
}