⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_35109.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:35109 发表者:fm 发表日期:2003-04-04 09:22:11
<br>主题:怎么把动态库连接到程序中??
<br>内容:怎么把动态库连接到程序中??<BR><BR>我有一个从网上下载的.dll,和相应的一个.h文件,怎么连接到主程序啊??/<BR><BR>谢谢答复!!
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:微笑的撒旦 回复日期:2003-04-04 09:43:43
<br>内容:最好找本书来看看,一般VC的书上都会说!.h文件中可以知道dll中导出哪几个函数
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:zjllyy 回复日期:2003-04-04 10:12:08
<br>内容:把dll、头文件和lib文件放到工程根目录,在工程中包含.lib文件,在用到dll函数的源文件中包含头文件,然后用就可以了
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:bird 回复日期:2003-04-04 15:48:45
<br>内容:在VC中调用动态链接库时,调用到Windows的API函数LoadLibrary,GetProcAddress等。此方法对于调用其它语言和VC编译的DLL均适用。<BR><BR>  假定DLL中包括一个函数:<BR><BR>int yanzheng(CString input,char* zcm) <BR>  <BR>  首先在欲调用DLL函数的cpp文件前部先声明函数指针,定义函数类型:<BR><BR>typedef int (* _YANZHENG)(CString,char* zcm); <BR><BR>  然后定义如下变量∶<BR><BR>HINSTANCE hLibrary;<BR>_YANZHENG yanzheng; <BR><BR>  在调用DLL处加入如下语句进行DLL装载: <BR><BR>hLibrary=LoadLibrary("zcdll.dll");<BR>yanzheng=(_YANZHENG)GetProcAddress(hLibrary,"yanzheng");<BR>shuchu= (*yanzheng)(shuru,zcm);<BR>FreeLibrary(hLibrary); <BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:bird 回复日期:2003-04-04 15:54:10
<br>内容:用VC++5.0定制和调用动态链接库<BR>杨波&nbsp;&nbsp; <BR>&nbsp;&nbsp; <BR><BR> 通常我们在调用DLL时所需的DLL文件必须位于以下三个目录之一:<BR><BR>  (1)Windows的系统目录:\windows\system;<BR><BR>  (2)DOS中path所指出的任何目录;<BR><BR>  (3)程序所在的目录。<BR><BR><BR>  一、动态链接库的结构<BR><BR><BR>  动态链接库中定义有两种函数:导出函数(export function)和内部函数(internal function),导出函数可以被其它模块调用,内部函数只能在库内部使用。我们在用C++定制动态库文件时,需要编写的就是包含导出函数表的模块定义文件(.DEF)和实现导出函数功能的C++文件。下面以Sample.dll为例介绍DEF文件和实现文件的结构。<BR><BR>  1.模块定义文件(.DEF)是一个或多个用于描述DLL属性的模块语句组成的文本文件,每个DEF文件至少必须包含以下模块定义语句:<BR><BR>  ·第一个语句必须是LIBRARY语句,指出DLL的名字;<BR><BR>  ·EXPORTS语句列出被导出函数的名字;<BR><BR>  ·可以使用DESCRIPTION语句描述DLL的用途(此句可选);<BR><BR>  ·“;”对一行进行注释(可选)。<BR><BR>  2.实现文件<BR><BR>  实现入口表函数的cpp文件中,包含DLL入口点处理的API函数和导出函数的代码。<BR><BR><BR>  二、创建Sample.dll<BR><BR><BR> 三、在应用程序中调用DLL文件<BR><BR><BR>  在应用程序中要首先装入DLL后才能调用导出表中的函数,例如用MFC创建基于对话框的工程Test,并在对话框上放置“Load”按钮,你就必须添加装载代码。<BR><BR>  1.首先在TestDlg.cpp的首部添加变量设置代码:<BR><BR>  //设置全局变量gLibSample用于存储DLL句柄<BR><BR>  HINSTANCE gLibSample=NULL;<BR><BR>  //第二个变量ShowMe是指向DLL库中ShowMe()函数的指针<BR><BR>  typedef int(

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -