如何在DLL中导出vc的重载函数 ( 积分: 30 )

  • 主题发起人 主题发起人 Lingmagic
  • 开始时间 开始时间
L

Lingmagic

Unregistered / Unconfirmed
GUEST, unregistred user!
如下:
CPP部分
void _stdcall CreateObject(char* file)
{
.............
}
void _stdcall CreateObject(void* mem)
{
.............
}
DEF文件
LIBRARY object

EXPORTS
CreateObject @1 出错
CreateObject @2 出错

说明:CreateObject是一个重载函数,允许从文件或内存中创建对象,但我在def文件中
试图导出它们是出错,有谁知道该怎么解决?
 
如下:
CPP部分
void _stdcall CreateObject(char* file)
{
.............
}
void _stdcall CreateObject(void* mem)
{
.............
}
DEF文件
LIBRARY object

EXPORTS
CreateObject @1 出错
CreateObject @2 出错

说明:CreateObject是一个重载函数,允许从文件或内存中创建对象,但我在def文件中
试图导出它们是出错,有谁知道该怎么解决?
 
问题紧急,要我多给点分也可以啊,说 要多少分
 
这个问题我先抢了,分数都给我啊!
这个时候就要起个名字加以区分了
EXPORTS
GetSortSysID=?GetSortSysID@@YA?AVCString@@PBD@Z
等号前面的GetSortSysID是对外的名字,后面的?GetSortSysID@@YA?AVCString@@PBD@Z是函数编译时唯一的名字,在编译时可以看得到
 
用Tdump看看导出函数是什么(在Delphi 的bin目录下)
 
这里不是C++讨论区吗? 请问在VC中如何解决?
 
先用这个__declspec(dllexport) 加在前边然后用dependency walker观察下然后copy function information到.def文件就可以.

我建议你换中方式何必如此呢?
 
后退
顶部