CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 15 of 27

Threaded View

  1. #16
    Join Date
    Nov 2000
    Location
    Voronezh, Russia
    Posts
    6,633

    Re: DLL exported functions

    Quote Originally Posted by John E
    what about the other way aorund? Can VC++ actually generate a .DEF file at build time?
    It never is other way round with VC. DEF file always is an input information, and VC never generates it. It's always programmer who does. Though I can recall, Borland indeed had the tool, but not VC.
    Quote Originally Posted by John E
    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
    It will be both, yes.

    Quote Originally Posted by egawtry
    The NONAME is for the paranoid, I assume that Igor did it out of habit.
    Sorry, the NONAME is for those who know exactly what they do. I used it precisely for demonstrating how conflict of ordinals may occur. Other people may use it for getting rid of export names table, because they have their own reasons for that, and being paranoid might be the last one. You know, sometimes people intentionally design all the aspects of the dlls they release.

    Quote Originally Posted by egawtry
    The most commonly used extension is to put PRIVATE in place of the ordinal number for predefined Windows exports like DllGetVersion().
    Well, talking about PRIVATE, again it is for those who know exactly what they do. It's used strictly to prevent existing export entries from appearing in import library. And frankly, I cannot see how PRIVATE could relate to the subject we discuss here, as it affects neither export name nor ordinal.

    Quote Originally Posted by John E
    As long as the lib and its header files match each other, the exe build will always work just fine. The linker can't know if there's a more recent DLL available.
    And if the prototype stays unchanged, and .lib file contains export by name, and export really exists in the .dll, it doesn't matter how old the .lib is, as .exe is going to work just fine.
    Last edited by Igor Vartanov; January 4th, 2012 at 06:30 PM.
    Best regards,
    Igor

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured