Quote Originally Posted by John E View Post
Thanks guys, this has been really helpful. One more question if I may...

If I see this in a DEF file:-

Code:
foo1 @2
will the LIB / DLL tables contain BOTH the function name and the ordinal or just the ordinal? I'm assuming both - because I noticed in Igor's example that he specified this:-

Code:
foo1 @2 NONAME
which obviously prevents the name from getting exported. But what about the first case?
There are quite a few parameters that can be added to a DEF export, most of them unnecessary.

The NONAME is for the paranoid, I assume that Igor did it out of habit.

The most commonly used extension is to put PRIVATE in place of the ordinal number for predefined Windows exports like DllGetVersion().

Code:
EXPORTS
    ; Explicit exports can go here
      DllCanUnloadNow   PRIVATE
      DllGetClassObject PRIVATE
      DllRegisterServer PRIVATE
      DllUnregisterServer PRIVATE
      ;DllRegisterServerCheck PRIVATE     
      DllGetVersion     PRIVATE


-Erik