动态链接库编程

cv123cv123 2011-11-11 05:47:10
动态链接库编程.打开VC工程,选择文件-新建-在工程选项卡选择Win32 Dynamic-Link library,工程名lin单击确定,选择一个空的DLL工程,单击确定,选择文件-新建-在文件选项卡选择C++Source File,输入文件名lin单击确定,输入原文件如下代码
int add(int a,int b)
{ return a+b;}
int jian(int a,int b)
{ return a-b;}
在工程lin目录下新建一个模块定义文本文件lin.def,单击工程-选择添加到-文件,将lin.def添加到工程
在模块定义文件lin.def中输入如下代码
LIBRARY LIN //表明LIN属于动态链接库
EXPORTS  //动态链接库导出函数名
add
jian
编译后在工程lin\Debug目录下生成lin.dll动态链接库文件,
再新建一个对话框工程,工程名test,为对话框添加2个按钮控件,并为2个按钮控件添加2个消息响应函数,消息响应函数中输入如下代码
void CTestDlg::OnButton1()
{
HINSTANCE hin=LoadLibrary("lin.dll");//加载动态链接库文件
if(hin!=NULL)
MessageBox("process false");
typedef int (*ADDFUNC)(int a,int b);//定义一个指向函数的指针变量
ADDFUNC f1=(ADDFUNC)GetProcAddress(hin,"add");//获得动态链接库中函数的地址
if(!f1)
{MessageBox("false");
return;}
CString s;
s.Format("a+b=%d",f1(5,9));//通过函数指针调用动态链接库中函数
MessageBox(s);

// TODO: Add your control notification handler code here

}

void CTestDlg::OnButton2()
{
HINSTANCE hinstance=LoadLibrary("lin.dll");//加载动态链接库文件

typedef int (*fn)(int a,int b);//定义一个指向函数的指针变量

fn f1=(fn)GetProcAddress(hinstance,"jian");//获得动态链接库中函数的地址

if(!f1)
{MessageBox("false");
return;}
CString s;
s.Format("a+b=%d",f1(5,9));//通过函数指针调用动态链接库中函数

MessageBox(s);
// TODO: Add your control notification handler code here

}
...全文
70 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
cv123cv123 2011-11-12
  • 打赏
  • 举报
回复
有工具,那是不是DUMPBIN,是VC++6.0 TOOS/DEPENDS工具,我要的是DUMPBIN这个程序,这可以深入理解DOS
cv123cv123 2011-11-12
  • 打赏
  • 举报
回复
你笑什么!!!有本事你也来一段学习代码,我没有上过大学,35岁才自学编程,我所有的C,C++,VC++6.0编程知识都是自学的,并且还成功开发过几个小桌面程序
caddor2011 2011-11-12
  • 打赏
  • 举报
回复

有工具可以查看

用不着 环境变量



[Quote=引用 6 楼 cv123cv123 的回复:]
关于VC++6.0查看动态链接库导出函数的DOS DUMPBIN程序操作,先要设置pach环境变量,具体操作,在桌面右击
"我的电脑",在系统属性对话框单击高级选项卡,再单击系统设置s,下方的编辑按钮,然后将DUMPBIN的路径复制到变量(V)中,要用分号隔开,这样一来就可以MS-ODS中找到DUMPBIN程序,DUMPBIN程序运行会提示找不到MSPDB60.DLL,还要将MSPDB60.DL……
[/Quote]
cv123cv123 2011-11-12
  • 打赏
  • 举报
回复
关于VC++6.0查看动态链接库导出函数的DOS DUMPBIN程序操作,先要设置pach环境变量,具体操作,在桌面右击
"我的电脑",在系统属性对话框单击高级选项卡,再单击系统设置s,下方的编辑按钮,然后将DUMPBIN的路径复制到变量(V)中,要用分号隔开,这样一来就可以MS-ODS中找到DUMPBIN程序,DUMPBIN程序运行会提示找不到MSPDB60.DLL,还要将MSPDB60.DLL的路径复制到pach环境变量中,DUMPBIN就可以正常运行了
gameslq 2011-11-12
  • 打赏
  • 举报
回复
cv123cv123 2011-11-12
  • 打赏
  • 举报
回复
yes
Eleven 2011-11-11
  • 打赏
  • 举报
回复
孙鑫教程上的一章吗?
yuucyf 2011-11-11
  • 打赏
  • 举报
回复
楼主共享知识吗?
cdsnpeter 2011-11-11
  • 打赏
  • 举报
回复
问题是什么?

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧