实现接口一种可靠的 DLL 接口实现方案
每日一贴,今天的内容关键字为实现接口
美丽是平凡的,平凡得让你感觉不到她的存在;美丽是平淡的,平淡得只剩下温馨的回忆;美丽又是平静的,平静得只有你费尽心思才能激起她的涟漪。
// Service.h, DLL定义(供实现方、调用方使用)#ifdef SERVICE_EXPORTS#define SERVICE_API extern "C" __declspec(dllexport)
#else#define SERVICE_API//#define SERVICE_API extern "C" __declspec(dllimport)
#endifinterface IService
{
public:IService() {}virtual ~IService() {}public:virtual void Start() = 0;virtual void Stop() = 0;
};typedef IService *(*CreateInstance_t)();
typedef void (*DestroyInstance_t)(IService *pInst);SERVICE_API IService *CreateInstance();
SERVICE_API void DestroyInstance(IService *pInst);// Service.cpp, DLL实现#include "Service.h"
class CService : public IService
{
public:CService();virtual ~CService();public:virtual void Start();virtual void Stop();private://.....
};CService::CService()
{
}CService::~CService()
{
}void CService::Start()
{
}void CService::Stop()
{
}IService *CreateInstance()
{return new CService();
}void DestroyInstance(IService *pInst)
{if (!pInst) return;delete pInst;
}SERVICE_API HRESULT WINAPI DllRegisterServer()
{//CMD> regsvr32.exe Service.dll 时须要执行的安装代码return S_OK;
}SERVICE_API HRESULT WINAPI DllUnregisterServer()
{//CMD> regsvr32.exe /u Service.dll 时须要执行的卸载代码return S_OK;
}// Demo.cpp, DLL调用#include "Service.h"
int WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{HMODULE hDll = LoadLibraryA("Service.dll");if (hDll){CreateInstance_t pfnCreateInstance =(CreateInstance_t)GetProcAddress(hDll, "CreateInstance");DestroyInstance_t pfnDestroyInstance =(DestroyInstance_t)GetProcAddress(hDll, "DestroyInstance");if (pfnCreateInstance && pfnDestroyInstance){IService *pInst = pfnCreateInstance();if (pInst){pInst->Start();pInst->Stop();pfnDestroyInstance(pInst);}}FreeLibrary(hDll);}return 0;
}
文章结束给大家分享下程序员的一些笑话语录: 《诺基亚投资手机浏览器UCWEB,资金不详或控股》杯具了,好不容易养大的闺女嫁外国。(心疼是你养的吗?中国创业型公司创业初期哪个从国有银行贷到过钱?)
--------------------------------- 原创文章 By
实现和接口
---------------------------------
实现接口一种可靠的 DLL 接口实现方案相关推荐
- vector 作为dll 接口参数_DLL中传递STL参数,vector对象作为dll参数传递等问题(转)...
STL使用模板生成,当我们使用模板的时候,每一个EXE,和DLL都在编译器产生了自己的代码,导致模板所使用的静态成员不同步,所以出现数据传递的各种问题,下面是详细解释. 原因分析:一句话-----如果 ...
- cmd 调用webservice接口_c# 三种方法调用WebService接口
1.引用*.wsdl文件 WebService服务端会提供wsdl文件,客户端通过该文件生成.cs文件以及生成.dll. 注意:若服务端只提供的了URL,在URL后面加上"?wsdl&quo ...
- 微信3.1.0.41逆向-微信3.1.0.41HOOK接口(WeChatHelper3.1.0.41.dll)使用说明
为了节省微信HOOK开发时间,现将微信HOOK注入DLL接口给大家,本接口从3.0.0.47版本开始,最新版本3.1.0.41,后续会根据自己的时间升级,本接口用vc++2017编写,Win32编译, ...
- 如何设计安全可靠的开放接口---之Token
文章目录 [如何设计安全可靠的开放接口]系列 前言 一.Token机制 1. Token生成 2. Session存在的问题 3. JWT是如何解决Session存在的问题的 二.JWT中的数据结构 ...
- 如何设计安全可靠的开放接口---之AppId、AppSecret
文章目录 [如何设计安全可靠的开放接口]系列 前言 AppId的使用 AppId的生成 AppSecret生成 总结 [如何设计安全可靠的开放接口]系列 1. 如何设计安全可靠的开放接口-之Token ...
- java扫描接口_一种扫描接口并生成可调用API接口文档的方法与流程
本发明属于JavaWeb开发技术领域,涉及一种API接口文档的生成方法,尤其是一种扫描接口并生成可调用API接口文档的方法. 背景技术: API(Application Programming Int ...
- 如何设计安全可靠的开放接口---对请求参加密保护
文章目录 [如何设计安全可靠的开放接口]系列 前言 AES加解密 代码实现 [如何设计安全可靠的开放接口]系列 1. 如何设计安全可靠的开放接口-之Token 2. 如何设计安全可靠的开放接口-之Ap ...
- 如何设计安全可靠的开放接口---之签名(sign)
文章目录 [如何设计安全可靠的开放接口]系列 前言 一.前置知识 二.签名的作用 1. 数据防篡改 2. 身份防冒充 三.流程说明 前置准备 交互流程 接口请求方 接口提供方 完整代码补充 总结 [如 ...
- Android硬件扩展接口有哪些,一种安卓智能设备USB接口拓展的方法及装置与流程...
本发明涉及安卓智能设备技术领域,特别是涉及一种安卓智能设备USB接口拓展的方法及装置. 背景技术: 安卓是一种以Linux为基础的开放源码操作系统,2007年正式推出后,在短短几年时间内得到了广泛的应 ...
最新文章
- 用mysql做文本挖掘_手把手教你做文本挖掘
- 6、图书类别修改删除功能
- 干货!请码住——点此领取免费开源框架
- saltstack自动化运维系列②之saltstack的数据系统
- (篇七)输入任意个数字,输出最大值最小值,且进行排序排序
- 微信小程序API之showModal(Loding...)
- c语言C的ascii码是多少,c的ascii码值是多少
- NO JVM installation found. please install a 64-bit JDK,解决方法 Error launching android studio NO J
- 恶梦----------需求分析的漫延
- c++自定义函数简单介绍
- TM1637驱动4位时钟数码管的Arduino 程序
- 二叉树面试题:前中序求后序、中后序求前序
- 存储需求大幅增长,企业如何应对挑战?
- 七夕专栏:看看大家都在干什么,对微博七夕超话的爬取
- MDK上使用 ULINK2设备上的SW调试 实现STM32 的 trace功能 (一)
- 长三角如何成为人才净流入最高的城市群?
- springboot 数据对比 差异提取
- FreeLine 踩坑记录
- 软件开发项目管理中的依赖关系
- C++ Primer Plus习题及答案-第十五章
热门文章
- redhat7.4安装神通数据库
- python程序狮,编程狮app下载
- 福州大学java期末试卷2012_福州大学 07Java语言程序设计试卷(A卷).doc
- 数字化在金融领域的应用与实践,从“我觉得”到“用户觉得”
- 重磅!深入调研证券行业,神策数据发布《财富管理数字化转型现状与趋势洞察》报告...
- 神策 FM | CEO 荐书—《斯坦福商业决策课》
- 二维数组的查找,刷题成功——剑指Offer
- 在Linux/Centos下用wondershaper限速
- arguments小结
- java真的是值传递么?