C++封装库
1.新建项目 -> Win32项目
选择DLL , 勾选 空项目 , 点击完成。
2.本例程,使用一个CPP文件 , 及一个头文件。 其中头文件包含函数声明,CPP文件实现函数声明。
3.头文件: SSLLib.h
#pragma once // 避免重复编绎
#ifndef __SSLLIB_H //与#pragma once作用一致,兼容设置
#define __SSLLIB_H
#ifndef __DLL_EXPORTS
#define __DLL_EXPORTS _declspec(dllimport)
#endif
//声明函数接口
extern "C" __DLL_EXPORTS int EncodeRSAKeyFile(const char * _strPemFileName, const char * _strData , unsigned char * buffer , int length ) ;
extern "C" __DLL_EXPORTS int DecodeRSAKeyFile(const char * _strPemFileName , const char * _strData , unsigned char * buffer , int length ) ;
#endif
/////SSLLIB.h 结束符
4.创建与头文件查关CPP文件 SSLLib.CPP
#include "SSLLib.h" //包含头文件
//函数实现
int EncodeRSAKeyFile(const char * _strPemFileName , const char * _strData , unsigned char * buffer , int length ) {
//函数实现...
}
int DecodeRSAKeyFile(const char * _strPemFileName , const char * _strData , unsigned char * buffer , int length ){
//函数实现...
}
/////////SSLLib.CPP 结束符
5.在C++文件中使用库文件
#include "SSLLib.h" //引用头文件
6.在不同编绎模式,引用静态文件
#ifdef _DEBUG
#pragma comment(lib , "..\\Debug\\SSLLib.lib");
#else
#pragma comment(lib , "..\\Release\\SSLLib.lib");
#endif
接下来可直接在项目文件中使用刚刚创建的库。
/////////C++ 引用结束符
7. C#使用
在C#项目文件中创建一个DLL文件夹,将DLL文件及相关的静态库文件拷入。
属性设置:
复制到输出目录: 如果较新则复制
生成操作:内容
C# 调用 示例:
[System.Runtime.InteropServices.DllImportAttribute("DLL\\SSLLib.dll", EntryPoint = "EncodeRSAKeyFile")]
public static extern int EncodeRSAKeyFile([System.Runtime.InteropServices.InAttribute()] [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string _strPemFileName, byte [] _strData, byte [] buffer, int length);
需要注意的是 C# Byte 类型默认范围 0 - 255 , C++ Char 默认类型 -128 ~ 127 , 因此在C++ 接口函数声明时,对应无符号类型 unsigned char
C++封装库的更多相关文章
- 【iCore3 双核心板】iCore3封装库及使用说明V1.0
iCore3封装库及使用说明下载链接: http://pan.baidu.com/s/1pLq23Qb iCore3 购买链接: https://item.taobao.com/item.htm?id ...
- 【原创】Capture CIS利用Access数据库建立封装库说明
1.在服务器端建立新空间,方便封装库以及数据库的归档存放 服务器路径:\\192.168.1.234\Share\STG_LIB,文件夹内容如下,其中Datesheet存放物料数据手册,Pcb_Lib ...
- Protel封装库
一.目录下面的一些封装库中,根据元件的不同封装我们将其封装分为二大类:一类是分立元件的封装,一类是集成电路元件的封装 1.分立元件类: 电容:电容分普通电容和贴片电容: 普通电容在Miscellane ...
- 打造属于自己的Altium Designer 3D封装库,不需要懂专门的三维设计软件
看到Andy_2020发的帖子“Altium Designer专题”之后,对Altium Designer的3D功能很感兴趣,着手自己做一个AD的3D封装库.刚开始按照Andy介绍的方法,学了两天So ...
- QF——iOS中的数据库操作:SQLite数据库,第三方封装库FMDB,CoreData
SQLite数据库: SQLite是轻量级的数据库,适合应用在移动设备和小型设备上,它的优点是轻量,可移植性强.但它的缺点是它的API是用C写的,不是面向对象的.整体来说,操作起来比较麻烦.所以,一般 ...
- Android 一个改进的okHttp封装库
一.概述 之前写了篇Android OkHttp完全解析 是时候来了解OkHttp了,其实主要是作为okhttp的普及文章,当然里面也简单封装了工具类,没想到关注和使用的人还挺多的,由于这股热情,该工 ...
- 第一百三十五节,JavaScript,封装库--拖拽
JavaScript,封装库--拖拽 封装库新增1个拖拽方法 /** tuo_zhuai()方法,将一个弹窗元素实现拖拽功能 * 注意:一般需要在css文件将元素里的某一个区块光标设置成提示可以拖拽, ...
- 第一百三十四节,JavaScript,封装库--遮罩锁屏
JavaScript,封装库--遮罩锁屏 封装库新增1个方法 /** zhe_zhao_suo_ping()方法,将一个区块元素设置成遮罩锁屏区块 * 注意:一般需要在css文件将元素设置成隐藏 ** ...
- 第一百三十三节,JavaScript,封装库--弹出登录框
JavaScript,封装库--弹出登录框 封装库,增加了两个方法 yuan_su_ju_zhong()方法,将获取到的区块元素居中到页面,chuang_kou_shi_jian()方法,浏览器窗口事 ...
- 第一百三十二节,JavaScript,封装库--下拉菜单
JavaScript,封装库--下拉菜单 封装库,增加了3个方法 shu_biao_yi_ru_yi_chu()方法,给元素设置鼠标移入移出事件,接收两个参数,参数是移入和移出时的执行函数(包含代码) ...
随机推荐
- 使用fragment兼容低版本的写法
[1]定义fragment继承V4包中的Fragment [2]定义的activity要继承v4包中的FragmentActivity [3]通过这个方法getSupportFragme ...
- 【Todo】【读书笔记】机器学习实战(Python版)
还是把这本书的读书笔记,单独拎出来吧,因为内容比较多. P38. Logistic 回归. 觉得还蛮实用的.囫囵吞枣看的.要细看.
- Linux系统负载排查
参考 http://www.ruanyifeng.com/blog/2011/07/linux_load_average_explained.html 在Linux系统中,我们一般使用uptime命 ...
- [CSS] vertical-align
原文地址: http://www.zhangxinxu.com/wordpress/2010/05/%E6%88%91%E5%AF%B9css-vertical-align%E7%9A%84%E4%B ...
- samba服务器常用指令
samba服务器需要安装samba.samba-common.samba-client三个包: samba -----samba服务器程序的所有文件 samba-common -----提供了Samb ...
- SlideSwitch
//SlideSwitch.java package com.example.hellojni; import android.content.Context; import android.cont ...
- 如何增加Asp.Net Core生成的模板网站中用户信息表中的列(AspNetUsers)
环境: 1.VS2015 Community 14.0.25431.01 Update 3; 2.其他环境(具体哪一个影响不太清楚,都列在这儿) 使用的系统模板 利用系统提供的模板,并选择个人身份验证 ...
- 【转】 STL中的set容器的一点总结
1.关于set C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构 ...
- iOS应用架构谈 组件化方案
转载: iOS应用架构谈 组件化方案 简述 前几天的一个晚上在infoQ的微信群里,来自蘑菇街的Limboy做了一个分享,讲了蘑菇街的组件化之路.我不认为这条组件化之路蘑菇街走对了.分享后我私聊了Li ...
- js字符串函数之indexOf()
indexOf 返回字符串中指定字符首次出现的位置 var str="hello, I am Miss bean!"; str.indexOf("l")//结果 ...