Win32 API to tell whether a given binary (EXE or DLL) is x86, x64, or ia64?

For EXEs use GetBinaryType(...) Here is same question for manged exe. For DLLs (and EXEs) Use the ImageNtHeader(...) to get the PE data of the file and then check the IMAGE_FILE_HEADER. Machine field.

Here is some code I found using Google Code Search No Cleanup and NO error checking // map the file to our address space // first, create a file mapping object hMap = CreateFileMapping( hFile, NULL, // security attrs PAGE_READONLY, // protection flags 0, // max size - high DWORD 0, // max size - low DWORD NULL ); // mapping name - not used // next, map the file to our address space void* mapAddr = MapViewOfFileEx( hMap, // mapping object FILE_MAP_READ, // desired access 0, // loc to map - hi DWORD 0, // loc to map - lo DWORD 0, // #bytes to map - 0=all NULL ); // suggested map addr peHdr = ImageNtHeader( mapAddr ).

Thanks for the reply. Looks like that particular API is going to just fail for .dll. – user15071 Jun 9 '09 at 18:53.

You can check the PE header yourself to read the IMAGE_FILE_MACHINE field. Here's a C# implementation that shouldn't be too hard to adapt to C++.

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions