Dumpbin output for hello.dll

For verifying that you compiled what you thought you did, dumpbin is invaluable.  This is a command line tool which ships with visual studio from Microsoft.

From running:

dumpbin /ARCHIVEMEMBERS /CLRHEADER /DEPENDENTS /EXPORTS /IMPORTS /SUMMARY /SYMBOLS

Over a 32 bit version of hello.dll compiled with Visual Studio 2008 the following output came out:

Microsoft (R) COFF/PE Dumper Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.

Dump of file hello.dll

File Type: DLL

  Image has the following dependencies:

    iguana.exe
    KERNEL32.dll

  Section contains the following exports for hello.dll

    00000000 characteristics
    528F6478 time date stamp Fri Nov 22 09:04:40 2013
        0.00 version
           1 ordinal base
           1 number of functions
           1 number of names

    ordinal hint RVA      name

          1    0 00001100 luaopen_hello = _luaopen_hello

  Section contains the following imports:

    iguana.exe
              1000B0F0 Import Address Table
              1000C808 Import Name Table
                     0 time date stamp
                     0 Index of first forwarder reference

                   1F luaL_register
                   3D lua_isnumber
                   6B lua_tonumber
                   4F lua_pushnumber
                   39 lua_gettop
                   50 lua_pushstring
                   3E lua_isstring
                   2C lua_error

    KERNEL32.dll
              1000B000 Import Address Table
              1000C718 Import Name Table
                     0 time date stamp
                     0 Index of first forwarder reference

                  1AA GetCurrentProcessId
                  2A6 HeapSize
                  1AD GetCurrentThreadId
                  16F GetCommandLineA
                  220 GetProcAddress
                  1F6 GetModuleHandleA
                  1F9 GetModuleHandleW
                  434 TlsGetValue
                  432 TlsAlloc
                  435 TlsSetValue
                  433 TlsFree
                  2C0 InterlockedIncrement
                  3EC SetLastError
                  1E6 GetLastError
                  2BC InterlockedDecrement
                  2A1 HeapFree
                  421 Sleep
                  104 ExitProcess
                  3E8 SetHandleCount
                  23B GetStdHandle
                  1D7 GetFileType
                  239 GetStartupInfoA
                   BE DeleteCriticalSection
                  1F4 GetModuleFileNameA
                  14A FreeEnvironmentStringsA
                  1BF GetEnvironmentStrings
                  14B FreeEnvironmentStringsW
                  47A WideCharToMultiByte
                  1C1 GetEnvironmentStringsW
                  29F HeapCreate
                  2A0 HeapDestroy
                  457 VirtualFree
                  354 QueryPerformanceCounter
                  266 GetTickCount
                  24F GetSystemTimeAsFileTime
                  15B GetCPInfo
                  152 GetACP
                  213 GetOEMCP
                  2DB IsValidCodePage
                  42D TerminateProcess
                  1A9 GetCurrentProcess
                  43E UnhandledExceptionFilter
                  415 SetUnhandledExceptionFilter
                  2D1 IsDebuggerPresent
                  2EF LeaveCriticalSection
                   D9 EnterCriticalSection
                  29D HeapAlloc
                  454 VirtualAlloc
                  2A4 HeapReAlloc
                  48D WriteFile
                  2F1 LoadLibraryA
                  2B5 InitializeCriticalSectionAndSpinCount
                  392 RtlUnwind
                  2E1 LCMapStringA
                  31A MultiByteToWideChar
                  2E3 LCMapStringW
                  23D GetStringTypeA
                  240 GetStringTypeW
                  1E8 GetLocaleInfoA

  Summary

        2000 .data
        2000 .rdata
        1000 .reloc
        A000 .text

And this the 64 bit version with the same dumpbin command:

Microsoft (R) COFF/PE Dumper Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.

Dump of file hello.dll

File Type: DLL

  Image has the following dependencies:

    iguana.exe
    KERNEL32.dll

  Section contains the following exports for hello.dll

    00000000 characteristics
    528F67BE time date stamp Fri Nov 22 09:18:38 2013
        0.00 version
           1 ordinal base
           1 number of functions
           1 number of names

    ordinal hint RVA      name

          1    0 00001130 luaopen_hello = luaopen_hello

  Section contains the following imports:

    iguana.exe
             18000B1E8 Import Address Table
             18000CDF0 Import Name Table
                     0 time date stamp
                     0 Index of first forwarder reference

                          1F luaL_register
                          3D lua_isnumber
                          6B lua_tonumber
                          4F lua_pushnumber
                          39 lua_gettop
                          3E lua_isstring
                          50 lua_pushstring
                          2C lua_error

    KERNEL32.dll
             18000B000 Import Address Table
             18000CC08 Import Name Table
                     0 time date stamp
                     0 Index of first forwarder reference

                         266 GetTickCount
                         2A6 HeapSize
                         1AE GetCurrentThreadId
                         140 FlsSetValue
                         170 GetCommandLineA
                          D6 EncodePointer
                          B8 DecodePointer
                         13F FlsGetValue
                         13E FlsFree
                         3F0 SetLastError
                         1E6 GetLastError
                         13D FlsAlloc
                         2A1 HeapFree
                         425 Sleep
                         1F9 GetModuleHandleW
                         220 GetProcAddress
                         105 ExitProcess
                         3EC SetHandleCount
                         23B GetStdHandle
                         1D8 GetFileType
                         239 GetStartupInfoA
                          BF DeleteCriticalSection
                         1F4 GetModuleFileNameA
                         14B FreeEnvironmentStringsA
                         1C0 GetEnvironmentStrings
                         14C FreeEnvironmentStringsW
                         47E WideCharToMultiByte
                         1C2 GetEnvironmentStringsW
                         2A5 HeapSetInformation
                         29F HeapCreate
                         2A0 HeapDestroy
                         396 RtlUnwindEx
                         34E QueryPerformanceCounter
                         1AB GetCurrentProcessId
                         24F GetSystemTimeAsFileTime
                         15C GetCPInfo
                         153 GetACP
                         213 GetOEMCP
                         2D5 IsValidCodePage
                         431 TerminateProcess
                         1AA GetCurrentProcess
                         442 UnhandledExceptionFilter
                         419 SetUnhandledExceptionFilter
                         2CB IsDebuggerPresent
                         397 RtlVirtualUnwind
                         390 RtlLookupFunctionEntry
                         389 RtlCaptureContext
                         2E9 LeaveCriticalSection
                          DA EnterCriticalSection
                         29D HeapAlloc
                         2A4 HeapReAlloc
                         491 WriteFile
                         2EB LoadLibraryA
                         2B5 InitializeCriticalSectionAndSpinCount
                         2DB LCMapStringA
                         314 MultiByteToWideChar
                         2DD LCMapStringW
                         23D GetStringTypeA
                         240 GetStringTypeW
                         1E8 GetLocaleInfoA

  Summary

        3000 .data
        1000 .pdata
        3000 .rdata
        1000 .reloc
        A000 .text

If you look carefully you can see subtle differences in the exports of the two DLLs.