CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 3 of 3
  1. #1
    Join Date
    Jul 1998

    VC DLLs work only in VC


    I have written a DLL with 1 exported function using Visual C++ 5.0

    When I link it in a program written in VC there is no problem.

    When I gave that DLL to a guy who is using Watcom C++ 11.0 he can't link to the function.

    Any suggestions?



  2. #2
    Join Date
    Jul 1998

    Re: VC DLLs work only in VC

    Have you exported the function with extern "C". Function name decoration (or name mangling) is compiler dependant due to lack of a standard. This will cause a problem when trying to dynamically link to the function by name from another development tool. This could be avoided by using ordinal values instead. Search for extern C in the online help for more information.

  3. #3
    Join Date
    Sep 1998

    Re: VC DLLs work only in VC

    Also, VC generates some useful headers which help:

    // If this DLL is dynamically linked against the MFC

    // DLLs, any functions exported from this DLL which

    // call into MFC must have the AFX_MANAGE_STATE macro

    // added at the very beginning of the function.


    // For example:


    // extern "C" BOOL PASCAL EXPORT ExportedFunction()

    // {

    // AFX_MANAGE_STATE(AfxGetStaticModuleState());

    // // normal function body here

    // }


    // It is very important that this macro appear in each

    // function, prior to any calls into MFC. This means that

    // it must appear as the first statement within the

    // function, even before any object variable declarations

    // as their constructors may generate calls into the MFC

    // DLL.


    // Please see MFC Technical Notes 33 and 58 for additional

    // details.

Posting Permissions

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

Windows Mobile Development Center

Click Here to Expand Forum to Full Width

On-Demand Webinars (sponsored)

We have made updates to our Privacy Policy to reflect the implementation of the General Data Protection Regulation.