不好意思,请指教下,DLL里的函数到底怎么用

lioneye 2001-12-25 03:03:56
别人的 DLL,告诉我函数声明如下:
extern "C"
{
int EXPORT _stdcall decompress(char *rttname,char *bmpname);
}

到底怎么才能用呢?实在很菜,呵呵,请指教
...全文
106 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
anlun 2001-12-30
  • 打赏
  • 举报
回复
错了不是#import
应该是#pragma comment(lib,"*.lib")
或者在工程设置里加入*.lib
lioneye 2001-12-25
  • 打赏
  • 举报
回复
anlun(伦) :
照你的方法,出现错误提示,不能打开*.lib,是否lib或DLl文件放置的位置有要求呢?
cmpp 2001-12-25
  • 打赏
  • 举报
回复
我来学习一下!
cmpp 2001-12-25
  • 打赏
  • 举报
回复
我来学习一下!
turongguo 2001-12-25
  • 打赏
  • 举报
回复
DLL的使用分为两种,静态导入和动态导入DLL。其中整个类的导入常采用
静态的导入方法;而函数或方法的导入通常采用动态的导入方法。
一.静态使用
导入类的声明:
1.DLL工程的声明最好为扩展MFC类型;
2.在DLL中有以下类声明
//MyClass.h
class AFX_EXT_CLASS CMyClass
{
............

};
3.在使用DLL的类的工程中,需要以下配置
A.在Project|Setting中的Link标签页的Object/library Modules 中加入*.lib
B.在Tools|Options中的Directories 标签页中的 Show directories for:下面的
Include files 中增加Myclass.h的路径;Lib files中增加*.lib 和*.dll路径。
C.在使用工程的代码中如下即可:
#include "MyClass.h"
......
CMyClass MyClass;
二.动态使用
动态使用DLL有个前提条件,必须知道DLL中的待引用函数名,配置必须有静态使用中的B项。
使用如下:
HINSTANCE g_hSmppDll = NULL;
typedef UINT MyFunc(char *); //DLL中的函数
MyFunc *pMyFunc=NULL;
g_hSmppDll =LoadLibrary("MyDll.dll");
ASSERT(g_hSmppDll );
pMyFunc=(MyFunc *)(GetProcAddress( g_hSmppDll, "MyFunc"));//引号中为DLL中的函数名
(*pMyFunc) ("ok");

在于一个*.lib文件。在编译动态链接库时,VC++会为动态链接库创建一个引入
库(IMPORT LIB),即*.lib。库文件中只包含一些指向外部DLL库的函数索引指针,而
不是真正的代码,用于解析DLL的加载地址,并定义动态链接库和用于声明的头文件
的完全路径名。然后为引入库定义一个头文件,用来声明DLL中的函数。开发人员在引用时,
要配置如下:
A.在Project|Setting中的Link标签页的Object/library Modules 中加入*.lib
B.在Tools|Options中的Directories 标签页中的 Show directories for:下面的
Include files 中增加Myclass.h的路径;Lib files中增加*.lib 和*.dll路径。
这是一种常用的方法。实际上,应用程序就是通过这种方式来访问Windows 的API函数。
WINDOWS为其内核动态链接库生成引入库并提供了头文件。应用程序在编译时将引入
库的信息带入可执行文件中,运行时通过引入库信息访问API函数。
xtky_limi 2001-12-25
  • 打赏
  • 举报
回复
listen
dennis_duan 2001-12-25
  • 打赏
  • 举报
回复
1,直接调用(在有Lib文件存在的情况下);
2,用LoadLibrary调入Dll文件,然后GetProcAddress得到函数地址,然后调用之
xtky_limi 2001-12-25
  • 打赏
  • 举报
回复
listen
anlun 2001-12-25
  • 打赏
  • 举报
回复
#import "库.lib"
//声名
extern int decompress(char *rttname,char *bmpname);
///下面就可以用这个函数啦
《Windows CE API手册》v2.0 说明 Blitz Force-加百力的个人标志:带大卫星的黑鹰 《Windows CE API手册》是Blitz Force团队继 Xarm和ROS开发系统之后之后又一重要作品。本手册收录并翻译了 MSDN Library for Visual Studio 2008 中超过2000 个API函数和宏的资料信息。分为:系统函数、COM函数、驱动函数、网络通信4个大类,有以下特点: 01. 资料权威。本手册中收录的绝大多数函数和宏都取自微软MSDN,权威性比较有保证。部分从DLL中找到的API在MSDN中尚未介绍。我们收录这部分MSDN未介绍的API主要是认为这些API似乎比较重要,希望有熟悉这部分API使用的高手能够多多指教。 02. 分类详细。本手册根据API函数的功能进行了详细分类。通过分类 方便读者查找和扫描学习API,提高学习效率。 03. 提供编程示例和开发经验。本手册取自Xarm开发系统,我们已经用Xarm系统试验了1000个左右的函数,在试验中获得的经验教训都保存在本手册中。用户使用本手册除了可以查询函数的使用方法,还可以参考我们提供的心得体会加深对API的理解。查看Xarm编写的函数示例可以到我们的联系站点下载Xarm 1.0。 04. 不断更新。本手册1.0版在2008年4月底完成后,发给Blitz Force队员做内部测试并收到很多反馈意见,本次发布的是2.0版。我们还会继续努力发布新的版本,根据新系统增加新函数,不断完善旧函数说明,提供更多示例。希望使用本手册的朋友如果发现手册中有错误或者有好的改进意见给我们发邮件或者留言。《作者简介》中有详细的联系方式。
《Windows CE API手册》是Blitz Force团队继 Xarm和ROS开发系统之后之后又一重要作品。本手册收录并翻译了 MSDN Library for Visual Studio 2008 中超过2000 个API函数和宏的资料信息。分为:系统函数、COM函数、驱动函数、网络通信4个大类,有以下特点: 01. 资料权威。本手册中收录的绝大多数函数和宏都取自微软MSDN,权威性比较有保证。部分从DLL中找到的API在MSDN中尚未介绍。我们收录这部分MSDN未介绍的API主要是认为这些API似乎比较重要,希望有熟悉这部分API使用的高手能够多多指教。 02. 分类详细。本手册根据API函数的功能进行了详细分类。通过分类 方便读者查找和扫描学习API,提高学习效率。 03. 提供编程示例和开发经验。本手册取自Xarm开发系统,我们已经用Xarm系统试验了1000个左右的函数,在试验中获得的经验教训都保存在本手册中。用户使用本手册除了可以查询函数的使用方法,还可以参考我们提供的心得体会加深对API的理解。查看Xarm编写的函数示例可以到我们的联系站点下载Xarm 1.0。 04. 不断更新。本手册1.0版在2008年4月底完成后,发给Blitz Force队员做内部测试并收到很多反馈意见,本次发布的是2.0版。我们还会继续努力发布新的版本,根据新系统增加新函数,不断完善旧函数说明,提供更多示例。希望使用本手册的朋友如果发现手册中有错误或者有好的改进意见给我们发邮件或者留言。《作者简介》中有详细的联系方式。
《Windows CE API手册》是Blitz Force团队继 Xarm和ROS开发系统之后之后又一重要作品。本手册收录并翻译了 MSDN Library for Visual Studio 2008 中超过2000 个API函数和宏的资料信息。分为:系统函数、COM函数、驱动函数、网络通信4个大类,有以下特点: 01. 资料权威。本手册中收录的绝大多数函数和宏都取自微软MSDN,权威性比较有保证。部分从DLL中找到的API在MSDN中尚未介绍。我们收录这部分MSDN未介绍的API主要是认为这些API似乎比较重要,希望有熟悉这部分API使用的高手能够多多指教。 02. 分类详细。本手册根据API函数的功能进行了详细分类。通过分类 方便读者查找和扫描学习API,提高学习效率。 03. 提供编程示例和开发经验。本手册取自Xarm开发系统,我们已经用Xarm系统试验了1000个左右的函数,在试验中获得的经验教训都保存在本手册中。用户使用本手册除了可以查询函数的使用方法,还可以参考我们提供的心得体会加深对API的理解。查看Xarm编写的函数示例可以到我们的联系站点下载Xarm 1.0。 04. 不断更新。本手册1.0版在2008年4月底完成后,发给Blitz Force队员做内部测试并收到很多反馈意见,本次发布的是2.0版。我们还会继续努力发布新的版本,根据新系统增加新函数,不断完善旧函数说明,提供更多示例。希望使用本手册的朋友如果发现手册中有错误或者有好的改进意见给我们发邮件或者留言。《作者简介》中有详细的联系方式。

16,471

社区成员

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

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

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