怎么确定一个DLL文件是32位的还是64位的

如何确定一个DLL文件是32位的还是64位的
请教各位达人一个问题:

有没有什么方法可以确定一个DLL文件是否是32位或64位。

最好不要用 LoadLibrary 的加载成功与否来判断啊!

------解决方案--------------------
从PE文件格式入手。检查 IMAGE_FILE_HEADER 中的machine成员即可。
------解决方案--------------------
好事做到底,直接上代码。
C/C++ code
#include <stdio.h>

int __stdcall CrnGetImageFileMachine(LPCSTR lpFileName)
{
    IMAGE_DOS_HEADER idh;
    FILE *f = fopen(lpFileName, "rb");
    fread(&idh, sizeof(idh), 1, f);

    IMAGE_FILE_HEADER ifh;
    fseek(f, idh.e_lfanew + 4, SEEK_SET);
    fread(&ifh, sizeof(ifh), 1, f);

    fclose(f);

    return ifh.Machine;
}

void __fastcall TForm1::FormCreate(TObject *Sender)
{
    int n = CrnGetImageFileMachine("E:\\temp\\setup.exe");

    if (n == 0x014C) ShowMessage("x86");
    else if (n == 0x0200) ShowMessage("IA64");
    else if (n == 0x8664) ShowMessage("x64");
    else ShowMessage("δ֪");
}