VC通过函数名调用DLL的标准范例
- DLL
extern "C" __declspec(dllexport) void GetDefaultPrinterName(char* name);extern "C" __declspec(dllexport) void GetDefaultPrinterName(char* name)
{//
}
- 调用代码
#include <iostream>
#include<windows.h>
#include<string>
using namespace std;#define TEST_DLL_PATH "D:\\Office-5.0-project\\c\\windows-printer\\Debug\\TPrinter.dll"
#define TEST_FUNCTION_NAME "GetDefaultPrinterName"typedef void( *TestFunction)(char*);int main()
{cout << "Start" << endl;HINSTANCE hDLL = LoadLibrary(TEST_DLL_PATH);if (hDLL == NULL){cout << TEST_DLL_PATH << " ERROR: " << GetLastError() << endl;return -1;}cout << TEST_DLL_PATH << " " << hDLL << endl;TestFunction function=(TestFunction)GetProcAddress(hDLL,"GetDefaultPrinterName");if (function == NULL){cout << TEST_DLL_PATH << " ERROR:" << GetLastError() << endl;return -1;}cout << TEST_FUNCTION_NAME << " " << function << endl;char name[256] = {0};function(name);cout<<"RESULT="<< name << endl;FreeLibrary(hDLL);//卸载dllTest.dll文件;cout << "End" << endl;return 0;
}
- 测试结果
D:\Office-5.0-project\c\Debug>TaishanDllTest.exe
Start
D:\Office-5.0-project\c\windows-printer\Debug\TPrinter.dll 63B00000
GetDefaultPrinterName 63B012DF
RESULT=Microsoft XPS Document Writer
End
VC通过函数名调用DLL的标准范例相关推荐
- VC调试器高级应用----系统函数,DLL段点
一.高级断点语法 高级断点语法由两部分组成:1.上下文部分.2.位置,表达式,变量或Windows消息条件. 用函数,源文件和二进制模块来指定上下文,上下文的表示方法: {[函数],[源文件] ...
- 用VC开发串口通信dll控件
VC串口通信技术网<VC串口上位机编程方法简介>介绍了串口编程的常见方法,其中就有使用串口dll控件的方法,dll是一种动态链接库,使用起来非常方便. 本文利用VC编程工具,对Window ...
- 基于VC++6.0的DLL开发
原文地址:http://blog.163.com/twnhr@126/blog/static/78927547200910254346804/ 基于VC++6.0的DLL开发 最近在开发一个基于网络的 ...
- 使用VC编写VB使用DLL
使用VC编写VB使用DLL 一.在函数定义前必须加上extern "c",_stdcall关键字. extern "C" int _stdcall Sum(i ...
- c 调用易语言dll字节集,总结VC与易语言DLL互相调用的方法
在编写程序的时候往往需要调用到别的语言编写的DLL文件,下面先来看一下在易语言中如何调用VC编写的DLL呢,首先用VC编写一个简单的DLL文件,代码如下: int WINAPI add(int x,i ...
- VC静态加载DLL和动态加载DLL
VC静态加载DLL和动态加载DLL 1. 静态加载DLL 如果你有a.dll和a.lib,两个文件都有的话可以用静态加载的方式: message函数的声明你应该知道吧,把它的声明和下面的语句写到一个头 ...
- C#与VC相互调用之VC调用C#的DLL库
介绍 在之前的博文 C#与VC相互调用之C#调用VC的DLL https://blog.csdn.net/xinxin_2011/article/details/86704660 里面讲了C#程序如何 ...
- Python教程:通过函数名调用函数的3种场景实现
一.说明 除了执行系统命令外,我们有时还需要动态地执行一些python代码,有经验的朋友就会知道可以使用内置函数eval实现这一需求,如eval("print(__file__)" ...
- WSAStartup()函数以及DLL的加载
本节讲解 Windows 下 DLL 的加载,学习 Linux Socket 的读者可以跳过. WinSock(Windows Socket)编程依赖于系统提供的动态链接库(DLL),有两个版本: 较 ...
- VC InitInstance函数
VC InitInstance函数 BOOL InitInstance()为什么说它是程序的进入点?还有,那个WinMain函数又有什么作用,这两个函数之间有什么关系吗? BOOL InitInsta ...
最新文章
- Android图形---OpenGL(二)
- CURL模拟请求(get/post)
- Netty深入浅出(一)入门
- Mybatis的ResultMap的使用
- 文献学习(part51)--逼近理想点的主成分分析法及其应用
- 期货大赛项目|九,fileinput插件的应用
- DDMS工具使用(转)
- 关于线程插入函数如何用的问题
- 华为设备如何将接口配置为中继模式_(完整版)华为设备基本配置命令
- Dialogue System for Unity文档中英对照版(简雨原创翻译)第六篇(音序器相关,语音同步)
- abs在c 语言中的作用,c语言中abs是什么意思
- 【小程序源码】笑话段子手
- MySQL练习题(4)
- Python实现抓取CSDN热门文章列表
- Receiver Operating Characteristic(ROC)
- 红帽linux 下qt 5.13.1 编译 mysql80驱动(内含升级gcc版本)
- 如何在css中设置音乐效果,css实现简单音乐符效果
- MySQL数据类型之数值型
- kernel panic - not syncing : fatal exception
- Kaggle: Tweet Sentiment Extraction 方法总结 Part 2/2: 金牌思路总结
热门文章
- 中海达ihand30手簿详细教程_开盘秒清,中海这次模拟选房结果恐将成真
- 切片器可以设置日期格式?_Power BI之相对日期的设置
- python函数的规则_Python函数的作用域规则和闭包
- 软件测试三五七原则,运动前必看!“三五七”原则和注意事项
- python获取音频音量大小_如何在python中规范化音频文件的音量:当前可用的任何包?...
- MySQL 8.0.12 基于Windows 安装教程
- 解决Android Studio出现Failed to open zip file. Gradle's dependency cache may be corrupt的问题
- wait,notify,notifyAll用法解析
- 使用putty上传文件到linux
- 【PHP】wx_sample.php 微信初始化开发者模式