DLL中如何实现重载函数的输出 貌似可以在def文件里使用不同的名字。具体语法也不清楚没用过 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 改成这样试试:float WINAPI Add(float x, float y) {return x+y;}如果还不行,你就定义成一个类,在类里加上这两个函数,这样或许可以. 或者你也可以这样,加上参数类型选择:int WINAPI Add(float x, float y,bool IsInt) {if(IsInt)return ((int)x+(int)y);elsereturn x+y;}实际上你的两个函数返回的都是int,因此,完全可以就定义成一个参数是float的 感谢楼上各位的帮助!项目实际情况是:Dll_1里有函数:int WINAPI Add(int x, int y) {return x+y;}Dll_2里有函数:int WINAPI Add(float x, float y) {return x+y;}为了整合这两个Dll,方便以后统一维护,我需要在新的Dll中同时支持两个原有的Add();(注:1、Dll_1和Dll_2同名;2、已有两种客户在调用Add()函数;3、让客户修改自己的代码不现实)我目前能想到的方法:第一步:以重载的方式实现Add()(C++支持重载,所以这一步很容易);第二步:输出(被卡在这里了!)(由于客户不可能修改各自的代码,我不能以Add_1()、Add_2()的方式提供)。再次恳求帮助! 这个好像没有更好的办法了,既然更新DLL了,就需要调用者也同步代码。而DLL又不支持导出重载 实在不行,我只能用条件编译的方式来间接实现;但这么一来,Dll的维护就麻烦了:每次更新,都得发布两个版本(面向两种用户) 在Dll中输出重载函数的根本原因:1、已经有很多客户在使用两种不同参数的Add()函数;2、让这些客户去修改自己的代码是不现实的。因此,Dll的名字和Add()函数的名字,都不可以改变(简单地说,就是Dll的开发接口必须兼容,不能被修改)。而导出类或另定义函数,等于要修改Dll的二次开发接口 关于VC环境下调用Delphi封装的Dll文件的问题,请大侠们帮我看一下。急。。在线等待 为什么析构函数会出错啊?大哥大姐们,救 我啊!!! 关于网络事件的问题 如何让程序等待直到另一程序执行完毕再继续执行呢。。 打印方向设置 很菜的问题:VC STL 如何获得?为何我得vc6没有包含对stl的支持??? UNICODE下怎么将CString中的字符串转换成浮点数? 图片旋转?? 请问在outlook express中加入插件的原理和方法 怎样用最短的代码实现:打开一个程序,隐藏执行,并等待其执行完毕? 请高手指点下MFCC中三角带通滤波器组的问题 如何控制http请求?求思路
float WINAPI Add(float x, float y) {return x+y;}
如果还不行,你就定义成一个类,在类里加上这两个函数,这样或许可以.
int WINAPI Add(float x, float y,bool IsInt)
{
if(IsInt)
return ((int)x+(int)y);
else
return x+y;
}
实际上你的两个函数返回的都是int,因此,完全可以就定义成一个参数是float的
Dll_1里有函数:int WINAPI Add(int x, int y) {return x+y;}
Dll_2里有函数:int WINAPI Add(float x, float y) {return x+y;}为了整合这两个Dll,方便以后统一维护,我需要在新的Dll中同时支持两个原有的Add();
(注:1、Dll_1和Dll_2同名;2、已有两种客户在调用Add()函数;3、让客户修改自己的代码不现实)我目前能想到的方法:
第一步:以重载的方式实现Add()(C++支持重载,所以这一步很容易);
第二步:输出(被卡在这里了!)(由于客户不可能修改各自的代码,我不能以Add_1()、Add_2()的方式提供)。再次恳求帮助!
但这么一来,Dll的维护就麻烦了:每次更新,都得发布两个版本(面向两种用户)
1、已经有很多客户在使用两种不同参数的Add()函数;
2、让这些客户去修改自己的代码是不现实的。
因此,Dll的名字和Add()函数的名字,都不可以改变(简单地说,就是Dll的开发接口必须兼容,不能被修改)。而导出类或另定义函数,等于要修改Dll的二次开发接口