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

Hybrid View

  1. #1
    Join Date
    Jul 1998
    Posts
    1

    VC DLLs work only in VC



    Hi,


    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?


    regards

    m1z0

  2. #2
    Join Date
    Sep 1998
    Posts
    5

    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.

  3. #3
    Join Date
    Jul 1998
    Posts
    1

    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.

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