Home > Back-end >  See a DLL can export to the overloaded function, is this why?
See a DLL can export to the overloaded function, is this why?

Time:11-14

Project through a set of the SDK, because the handover problem source is lost, leaving only the packaging good DLL
This DLL, it is found that a problem
It derived the overloaded function

I use dumpbin respectively analyzes the lib and DLL



From the lib DECODE_Start and DECODE_Stop is a function argument list different overload
But only DLL analysis, deduced the only function of the

The SDK in c # is called, is also true that with two kinds of parameter list can call success
DECODE_Start Decode_Stop for different parameters, successfully

I remember the DLL is unable to export the same parameter name overloading function, this is how to do it?

CodePudding user response:

With the Dependency Walker, DLL export of the original before the function name should not neat.

CodePudding user response:

reference 1/f, adlay response:
using the Dependency Walker, DLL export of the original before the function name should not neat.

CodePudding user response:

Can export right, the function name, argument list is not the same, just like two different functions are derived:
__declspec (dllexport) void fun (int a)
{
//to do
}
__declspec (dllexport) void fun (double a)
{
//to do
}

CodePudding user response:

Overloaded function must be allowed to export, unless it is pure c calling convention, c + + support.

CodePudding user response:

Ask the building Lord, no version management programs? SVN, GIT, etc.
Without the DLL decompiled code, write back?

CodePudding user response:

reference 4 floor xiaohuh421 response:
overloaded function must be allowed to export, unless it is pure c calling convention, c + + support.

So to export, DLL interface name will add some symbols, and the original is not the same as the interface name

CodePudding user response:

refer to 6th floor shihoongbo response:
Quote: refer to 4th floor xiaohuh421 response:

Overloaded function must be allowed to export, unless it is pure c calling convention, c + + support.

So to export, DLL interface name will add some symbols, and is not the same as the original interface name

Should be with extern "C" pure C calls, or to export the interface name wasn't so neat

CodePudding user response:

DLL cannot export with serial number (or) with the same function, examples of the building Lord, truly export may be three parameters of the function, it in internal judgments about the effectiveness of the parameter which decide to perform,

CodePudding user response:

Overloading is inherently can export,

CodePudding user response:

How to implement???? Side need to work, I tried the export overloading parameters, can be derived, is not an error, but it's hard to call, after all, can't give colleagues call a bunch of symbols, the other VS2010 is can't use extern "C" overloaded, C language format does not support overloaded,