VC通过函数索引调用DLL范例
- DLL
具体代码略。需要在def中定义:
EXPORTSGetDefaultPrinterName @1
- 调用
新建一个WIN32控制台,加一个CPP。内容如下:
#include <iostream>
#include<windows.h>
#include<string>
using namespace std;#define PRINT_DLL_NAME L"Printer.dll"
#define FUNCTION_INDEX 1
#define FUNCTION_NAME(i) (LPCSTR)MAKEINTRESOURCE(i)typedef void(WINAPI *TestFunction)(char*);int main()
{HINSTANCE hDLL = LoadLibrary(PRINT_DLL_NAME);if (hDLL == NULL){cout << PRINT_DLL_NAME << " ERROR: " << hDLL << endl;return -1;}TestFunction function=(TestFunction)GetProcAddress(hDLL, FUNCTION_NAME(FUNCTION_INDEX));if (function == NULL){cout << FUNCTION_INDEX << " ERROR:" << function << endl;return -1;}char name[256] = {0};function(name);cout<<"RESULT="<< name << endl;FreeLibrary(hDLL);return 0;
}
- 问题:能不能直接使用函数名得到函数入口?
有时必须使用这种方式。有时也可以直接使用函数名调用。具体参考:
VC调用DLL标准范例_柳鲲鹏-CSDN博客
VC通过函数索引调用DLL范例相关推荐
- 通过GetProcAddress函数动态调用dll中地函数,是否必须通过extern C声明导出函数?(转)...
通过GetProcAddress函数动态调用dll中的函数,是否必须通过extern "C"声明导出函数? [已结贴,结贴人:darongtou] 如题,网上搜了N多资料,一直找不 ...
- GetProcAddress()函数动态调用DLL中的函数,是否必须通过extern C声明导出函数?
GetProcAddress()函数动态调用DLL中的函数,是否必须通过extern C声明导出函数? 通过GetProcAddress函数动态调用dll中的函数,是否必须通过extern " ...
- python如何调用dll库中的函数_Python调用dll库接口-ctypes方法
背景 最近需要用python写个脚本程序(win10 环境),需要调用现成的dll库完成这项任务,对于一直在Linux平台上开发程序的本人来说,从没有过使用dll的经历(不得不说还是so大法好),遇到 ...
- 动态链接库DLL创建及导出函数、调用DLL
1.动态链接库(dll)概述 没接触dll之前觉得它很神秘,就像是一个黑盒子,既不能直接运行,也不能接收消息.它们是一些独立的文件,其中包含能被可执行程序或其他dll调用来完成某项工作的函数,只有在其 ...
- Qt调用dll中的功能函数
http://www.cnblogs.com/hicjiajia/archive/2010/08/27/1810239.html 声明: 事先我已经自己动手写了一个简单的dll文件(myDLL.dll ...
- 【转】Qt调用dll中的功能函数
DLL 优点 ------------------------------------- 1.扩展了应用程序的特性: 2.可以用许多种编程语言来编写: 3.简化了软件项目的管理: 4.有助于节省内存: ...
- 天马行空W:在C++中调用DLL中的函数
1.dll的优点 代码复用是提高软件开发效率的重要途径.一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用.比较常见的例子是各种应用程序框架,ATL.MFC等 ...
- 在C++中调用DLL中的函数
1.dll的优点 代码复用是提高软件开发效率的重要途径.一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用.比较常见的例子是各种应用程序框架,ATL.MFC等 ...
- 在C++中调用DLL中的函数(2)
本文转自:http://blog.sina.com.cn/s/blog_53004b4901009h3b.html 应用程序使用DLL可以采用两种方式: 一种是隐式链接,另一种是显式链接.在使用DLL ...
- 【转】matlab函数编译成dll供Cpp调用的方法
转自:https://www.cnblogs.com/vincenzo/archive/2009/09/09/1563467.html 以前做过matlab7与c++的混合编程:将m函数编译成dll给 ...
最新文章
- java none怎么用tomcat_使用tomcat做java中间件
- MS SQL入门基础:触发器概述
- C++指针、this指针、静态成员
- 1218 鼠标样式 cursor
- SQL Server 2014 许可证(六)虚拟化中的授权
- [转载]Qt之中文显示(QMessageBox、QLineEdit右键菜单等)
- 如何用BootStrap栅格系统实现响应式布局
- 微信头像失效_如何判断微信授权的头像是否失效
- 韩立刚计算机网络——第五章:传输层
- 拉肚子差评回复模板_遇到差评,餐厅这样对症回复就对了!
- 北京高考零分作文(结尾太搞了)终于懂了什么叫笑喷了
- 别在找提高C++晦涩难懂的知识了。提高效率!这里有C++STL——全面总结详细教程(附案例解析)(持续更新中)
- Java实现excel大数据量导入
- Linux 系统管理员
- linux系统如何扩展屏幕,大神教你用 autoplank 在多个显示器上使用 Plank 扩展坞
- xxx牌JUC学习加油奥利给001初始篇章
- Linux系统和内核目录解析
- 体会视觉的震撼,从10亿光年到0.1飞米
- LFI/RFI漏洞相关
- windows安装spacemacs
热门文章
- 线性表插入元素算法(顺序存储)
- inno setup安装之前关闭mysql_inno setup 安装前判断进程是否存在,以及停止相应进程转...
- mysql 线程内存 回收_【MySQL】InnoDB后台线程与内存缓存池
- MySQL怎么建两个table_在MySQL中使用带有两个表的UNION的CREATE TABLE AS语句
- php 域名方法,PHP获取域名方法
- truncate表和update 效率_SQL中Truncate的用法
- postman传数组参数
- iOS并发编程(GCD)学习笔记
- 空间数据分析与R语言实践
- 如何基于Spring Boot搭建一个完整的项目