社区
进程/线程/DLL
帖子详情
高分请教高手,dll替换问题,急!
badcoldlj
2005-12-19 11:02:18
有一个程序,pb写的,她调用了一个dll文件里的两个函数,a()和b().
现在我对a,b两个函数的返回值和参数都知道了,但是不知道这个dll使用什么写的。
我的问题是,我想自己用vc写一个同名的dll,里边也输入两个同样的名称和参数的函数a和b,但是函数的具体实现是我自己的代码,完成不同的工作。然后用我的这个dll来代替原来的dll,可行吗?
还有一个问题,我编译xxx.dll文件时,总是提示我没有关联到xxx.def得编译程序,这是怎么回事?
...全文
165
5
打赏
收藏
高分请教高手,dll替换问题,急!
有一个程序,pb写的,她调用了一个dll文件里的两个函数,a()和b(). 现在我对a,b两个函数的返回值和参数都知道了,但是不知道这个dll使用什么写的。 我的问题是,我想自己用vc写一个同名的dll,里边也输入两个同样的名称和参数的函数a和b,但是函数的具体实现是我自己的代码,完成不同的工作。然后用我的这个dll来代替原来的dll,可行吗? 还有一个问题,我编译xxx.dll文件时,总是提示我没有关联到xxx.def得编译程序,这是怎么回事?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mythay
2005-12-19
打赏
举报
回复
一般说来不行的,不过你可以查看原来dll中那个函数的导出顺序,新的dll文件在def文件中定义相同的序号。
另外还要注意名称的问题,因为别人的dll使用的编译器未知,你最好察看一下函数名字,看他是否对名字作了改变,如果改变的话就很麻烦。
不过,最好还是使用LoadLibrary进行动态加载。
wangk
2005-12-19
打赏
举报
回复
//调用函数:int myPuts(LPTSTR)
typedef int (*MYPROC)(LPTSTR);
VOID main(VOID)
{
HINSTANCE hinstLib;
MYPROC ProcAdd;
BOOL fFreeResult, fRunTimeLinkSuccess = FALSE;
// Get a handle to the DLL module.
hinstLib = LoadLibrary(TEXT("myputs"));
// If the handle is valid, try to get the function address.
if (hinstLib != NULL)
{
ProcAdd = (MYPROC) GetProcAddress(hinstLib, TEXT("myPuts"));
// If the function address is valid, call the function.
if (NULL != ProcAdd)
{
fRunTimeLinkSuccess = TRUE;
(ProcAdd) (TEXT("Message via DLL function\n"));
}
// Free the DLL module.
fFreeResult = FreeLibrary(hinstLib);
}
// If unable to call the DLL function, use an alternative.
if (! fRunTimeLinkSuccess)
printf("Message via alternative method\n");
}
gohappy_1999
2005-12-19
打赏
举报
回复
可以,只是导出API的话没有问题的。
rageliu
2005-12-19
打赏
举报
回复
1. 然后用我的这个dll来代替原来的dll,可行吗?
完全可以,只要你dll名字和导出函数和原来那个dll相同,在你的dll里面还可以调用原来那个dll的函数,不过不要将原来的dll放在程序目录或系统目录或vc的配置目录里,你用原来的dll也用绝对路径形式
2. 还有一个问题,我编译xxx.dll文件时,总是提示我没有关联到xxx.def得编译程序,这是怎么回事?
xxx.def是用来说明导出函数,共享数据段等的,找写dll的资料好好看看
oyljerry
2005-12-19
打赏
举报
回复
自己实现一个dll,然后替换,然后调用,
那以前那个呢? not use?
《ACM竞赛-C/C++入门》 C语言-13
清华大学尹成老师、微软全球具有价值专家,手把手从基础教学到深入探讨,教你成为信息学竞赛
高
手
,让你知识点一通百通拿到竞赛
高
分,为编程开发打下坚实的基础! 从零基础到在蓝桥杯、NOIP、ACM竞赛、信息学...
基础
各位兄弟,在SDK编程中如果实现窗口分割呢?请问怎么得到一个函数的执行时间,单位毫秒!如何调试asp组件呀。用vc++调试编制的组件怎样画一个箭头?
高
分
请教
如何限制程序运行的方法?求助:通过编程DirectX抓屏------>masterz:再麻烦你一下,谢谢熟悉RichEdit的朋友过来看一下,RichEdit的几个
问题
.如何对 I/O 端口进行操作?有了该
问题
就有了思考(100分 献礼!)如何
vb/vb.net开发精粹(2)
关于EXCEL转换成ACCESS库 关于vb生成exe后出现的
问题
,
急
!!!! 一道不知拿不定主意的小题 是不是需要刷新一下窗口? vb 连接sql2000 数据库 超慢的
问题
~ uridownloadtofile 函数
问题
VB6.0如何调用打印纸格
我在CSDN参与的3000个帖子
今日偶然翻到,感慨万千 1:申述:版主,是否扣了我的专家分? 2:100分
急
求,随机输出十个小写字母,但是,要求这十个字母不相同 3:求Sn=a+aa+aaa+…+aaa…a(n个a)之值 4:数组题 望
高
手
帮忙! 5:呵呵,来推荐一下我的网站,本站提供大量当今流行的免费的音乐和免费电影,常用软件、游戏、精美图库下载,希望对网友有帮助!顺便散分! 6:VBA
请教
怎
vb/vb.net原创文章精粹(2)
[url=http://www.vbbaike.com/show.asp?id=101290]关于EXCEL转换成ACCESS库[/url] [url=http://www.vbbaike.com/show.asp?id=101289]关于vb生成exe后出现的
问题
,
急
!!!![/url] [url=http://www.vbbaike.com/show.asp?id=101...
进程/线程/DLL
15,471
社区成员
49,181
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章