July 20th, 1998 08:14 AM
#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
July 21st, 1998 04:23 AM
#2
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.
July 21st, 1998 07:26 AM
#3
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
Forum Rules
Click Here to Expand Forum to Full Width
Bookmarks