社区
Delphi
帖子详情
Dll中的函数重载处理
ymxxm
2000-07-17 12:36:00
请高手指点:如何在Dll中重载函数(需要导出同名函数)
...全文
288
3
打赏
收藏
Dll中的函数重载处理
请高手指点:如何在Dll中重载函数(需要导出同名函数)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
JGTM2000
2000-07-17
打赏
举报
回复
导出同名函数是不可能的。否则就不会有mangled name了(见过C++输出的函数名吧?)。
Michaelyfj提到的overload是可以对名称相同但参数表不同的函数进行重载,但是在输出的时候,虽然有相同的名称编译器并不会报错,但是在实际引入时无法确定调用的到底是哪一个,因此显然将导致无法预测的堆栈错误。
怎么办?在exports时候为函数的不同版本明确指定不同名称即可。如下:
library BeepLib;
uses
Windows, SysUtils;
procedure Beep(seed: PWideChar); overload; stdcall;
begin
Windows.Beep(StrToIntDef(seed),0),1000);
end;
procedure Beep(seed: PChar); overload; stdcall;
begin
Windows.Beep(StrToIntDef(seed,0),1000);
end;
exports
Beep(seed: PWideChar) name 'BeepW',
Beep(seed: PChar) name 'BeepA';
end.
在调用时引入的时候同样附上name属性即可:
project TestOverload;
procedure Beep(freq: PWideChar); stdcall;
external 'BeepLib.dll' name 'BeepW'; overload;
procedure Beep(freq: PChar); stdcall;
external 'BeepLib.dll' name 'BeepA'; overload;
begin
Beep(StrToOleStr('10000'));
Beep(PChar('5000'));
end.
相信有更好的办法解决你的实际需求。
gsoft
2000-07-17
打赏
举报
回复
关注
Michaelyfj
2000-07-17
打赏
举报
回复
用保留字overload可实现dll重载,要具体例子请与我联系
e-mail:yfj321@163.net
VC++动态链接库(
dll
)编程视频教学
动态链接库的开发编译属于VC++程序员技能。 本课程学习之后能够理解动态链接库原理,学会编译静态库、动态库,学会通过lib和头文件链接动态库,学会直接通过代码访问
dll
中
函数
C\C++
DLL
调用(
dll
函数
重载
未解决)
fun.h, 定义需要给外部调用的
函数
#pragma once #include<string> #include<iostream> #define FUN_API _declspec(
dll
export) EXTERN_C FUN_API int fun1(int a, int &b, ...
【C++】
函数
重载
② (
重载
函数
调用分析 |
函数
重载
特点 |
函数
重载
与默认参数 )
一、
函数
重载
1、
重载
函数
调用分析 2、
函数
重载
特点 二、
函数
重载
与默认参数 1、
函数
重载
与默认参数出现的二义性分析 2、代码示例 - 定义上述两个
函数
3、代码示例 - 没有二义性的
函数
调用 4、代码示例 - 出现二义性...
DLL
函数
重载
,以及一些前提知识的整理~
__stdcall, __cdecl, extern "C"等一些知识整理下~网上也有不少前辈的精彩文章整理一下放在最下面~
dll
会随附生成一个lib,里面存的是
函数
名什么的,那么可以从他身上下手所以就不必委曲求全的去extern "C"了。...
c++
函数
重载
详解
先是简单理解下
函数
重载
的概念:同一域内的同名
函数
在
函数
参数类型,参数个数,参数顺序上具有不同,则互为
重载
。 ps:
函数
重载
不包括
函数
返回值类型哟. 然后就是揭开一些c++的迷雾: 常成员
函数
的
重载
: class...
Delphi
5,388
社区成员
262,730
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章