dll里的函数名变了?(100分)

F

flmn

Unregistered / Unconfirmed
GUEST, unregistred user!
我在源码里写的函数是这样
char* __export queryForName(void)
编以后调用说找不到函数入口
我用PEViewer一看,输出的函数名变成了这个
Ordinal : 1 Function RVA : 000014B8 Name : @queryForName$qv
这是怎么回事?怎么样改正?
 

远帆

Unregistered / Unconfirmed
GUEST, unregistred user!
c语言是这样的,有一个设置可以让它生成标准的函数名。
或采用序号调用好了。
 
F

flmn

Unregistered / Unconfirmed
GUEST, unregistred user!
远帆兄,可否说的清楚一些?
我用lcc编译出的函数名是_queryForName@0
 
P

pljun

Unregistered / Unconfirmed
GUEST, unregistred user!
extern "C" char* __stdcall __export queryForName(void);
就应该好了
 

小笨苯

Unregistered / Unconfirmed
GUEST, unregistred user!
>>我用PEViewer一看,输出的函数名变成了这个
>>Ordinal : 1 Function RVA : 000014B8 Name : @queryForName$qv
这种情况是正常的,而并不是什么名字被改了。
你可以看看wr960204老兄的帖子,http://www.delphibbs.com/delphibbs/dispq.asp?lid=1687832
在那个帖子中,贴主用EXESCOPE工具分析了bpl文件内部的函数情况,和你这里差不多的。
 

令狐虫

Unregistered / Unconfirmed
GUEST, unregistred user!
导出函数声明中加extern "C"
 
F

flmn

Unregistered / Unconfirmed
GUEST, unregistred user!
多人接受答案了。
 
顶部