-
-
[求助]dll重载函数情况
-
发表于:
2009-10-26 21:31
6230
-
在dll中定义两个重载的函数,在应用程序中调用。用od一看,里面就是两个相同的函数名,请教一下,系统如何区分调用的是哪个函数?(看起来名字相同,那么在构建导入表时,系统怎么区分的),谢谢了!!
//---------ddd.h--------------
#ifdef MYLIBAPI
#else
#define MYLIBAPI __declspec(dllimport)
#endif
MYLIBAPI int add(int a,int b);
MYLIBAPI float add(float a,float b);
//----------------ddd.cpp-------------
#define MYLIBAPI __declspec(dllexport)
#include "ddd.h"
int add(int a,int b)
{
return a+b;
}
float add(float a,float b)
{
return a+b;
}
//-------------应用程序------------------
#include <stdlib.h>
#include <stdio.h>
#include "ddd.h"
void main()
{
int a=add(1,2);
float bb,cc=1.1f,dd=2.2f;
bb=add(cc,dd);
printf("%d %f\n",a,bb);
}
//------------od中的情况-------------------
地址=0040102E
反汇编=call dword ptr [<&ddd.add>]
目标文件=ddd.10001020
地址=00401059
反汇编=call dword ptr [<&ddd.add>]
目标文件=ddd.10001050
[课程]FART 脱壳王!加量不加价!FART作者讲授!