依星源码资源网,依星资源网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

限时开通VIP永久会员,可免费下载所有附件
查看: 540|回复: 0

使用vc++创建dll,调用其它dll函数

[复制链接] |主动推送

1686

主题

1721

帖子

2378

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2378
发表于 2021-7-18 14:11:42 | 显示全部楼层 |阅读模式
使用vc++创建dll,调用其它dll函数
1.File-->New-->rojects-->Win32 Dynamic-Link Library
2.录入工程名称,选择 An empty DLL project.
3.File-->New-->Files-->C/C++ Header File-->输入文件名称MyDll.h
4.内容如下
  1. #ifndef _MYDLL_H_
  2. #define _MYDLL_H_

  3. extern "C" _declspec (dllexport) int send(char *text,int com,int rate,int addr,int displayMode,int speed,int delayTime);
  4. #endif
复制代码
5.File-->New-->Files-->C++ Source File-->输入文件名称MyDll.cpp
6.内容如下
  1. #include "MyDll.h"
  2. #define WIN32_LEAN_AND_MEAN
  3. #include <windows.h>


  4. int send(char *text,int com,int rate,int addr,int displayMode,int speed,int delayTime){
  5.         char *dlladdr = "dll\\zy\\dlltpzp.dll";  
  6.         HMODULE hModule = ::LoadLibrary(dlladdr);
  7.         if (NULL == hModule) {
  8.                 return 0;
  9.         }
  10.         //加载函数
  11.         int(_stdcall *SendDatafun)(int, long, int, char *, int, int, int, int);
  12.         SendDatafun = (int(_stdcall *)(int, long, int, char *, int, int, int, int))GetProcAddress(hModule, "SendDatafun");
  13.         if (NULL == SendDatafun)
  14.         {
  15.                 ::FreeLibrary(hModule);
  16.                 return -1;
  17.         }
  18.         UINT m_nDelayTime = 1;
  19.         int nRetVal = SendDatafun(com, rate, addr, text,17, displayMode, speed, delayTime);
  20.         if (0 > nRetVal)
  21.         {
  22.                 return -2;
  23.         }
  24.         ::FreeLibrary(hModule);
  25.         return 1;
  26. }
复制代码

7.工程右键build编译完成
8.此类是加载了一个目录在dll\\zy\\dlltpzp.dll的dll文件,并调用该dll中的SendDatafun方法


========================================================
VC++调用Dll中的函数

装载DLL
HMODULE   LoadLibrary(
    LPCTSTR   lpFileName
);
获得所需函数
FARPROC   GetProcAddress(
    HMODULE   hModule,
    LPCSTR   lpProcName
);
释放DLL
BOOL   FreeLibrary(
    HMODULE   hModule
);


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免责声明:
1、转载或引用本网站内容须注明原网址,并标明本网站网址“源码资源网”
2、转载或引用本网站中的署名文章,请按规定向原作者支付稿酬
3、对于不当转载或引用本网站内容而引起的民事纷争、行政处理或其他损失,本网站不承担责任
4、对不遵守本声明或其他违法、恶意使用本网站内容者,本网站保留追究其法律责任的权利
5、资源部分来自网络,不保证资源的完整性,仅供学习研究,如需运营请购买正版,如有侵权请联系客服删除
6、本站所有资源不带技术支持,下载资源请24小时内删除,如用于违法用途,或者商业用途,一律用于者承担
 
在线客服
点击这里给我发消息 点击这里给我发消息 点击这里给我发消息
售前咨询热线
312337667

微信扫一扫,私享最新原创实用干货

QQ|手机版|依星源码资源网 ( 鲁ICP备2021043233号-3 )|网站地图

GMT+8, 2024-2-23 01:41

Powered by Net188.com X3.4

邮箱:312337667@qq.com 客服QQ:312337667(工作时间:9:00~21:00)

快速回复 返回顶部 返回列表