delphi 5调用VC++的dll时出现能找到dll但找不到其中的函数的错误(100分)

  • 主题发起人 主题发起人 wyk
  • 开始时间 开始时间
W

wyk

Unregistered / Unconfirmed
GUEST, unregistred user!

delphi 5调用VC++的dll时出现能找到dll但找不到其中的函数的错误,大致意思为:连接到www.exe错误,不存
在的函数输出asd.dll::init,而delphi 5调用自己的dll时无此错误,在vc++的dll中用__declspec(dllexport) char www (short),或extern "C" { viod _stdcall _export www(i:integer)
{some codes here}}均行不通,请问原因何在?delphi调用vc++ dll是否有一些必须的约定?百思不得其解,
真急煞我也,望各位大虾不吝赐教,最好有源程序(delphi pas and vc++ dll),E_mail:x119c@sina.com。
 
你是怎么写的呢?贴出相关代码。
 
写成下面的行不行?
__declspec(dllexport) char WINAPI www (short);
 
1、c中 extern "C" 是一定要的。
2、用“快速查看”看看asf.dll输出的函数是什么
 
注意大小写吧我不能确定
 
VC中写DLL时输出的函数一定要加上extern "C"说明。因为VC的函数在编译过程中将进行名字翻译以适应多态性的要求,翻译出来的函数名包含一些不常用的字符,如果加上extern "C"说明,将使VC不进行名字翻译,也就可以调用了。
 
有了extern "C"应该就行了
到底有没有输出,可以用相应的tool察看一下( vc下有view dependency和一个大概是叫tdump的东东吧,都没有的话,windows自带的快速察看也可凑合着用)
 
用 name 加个别名!
 
多人接受答案了。
 
后退
顶部