資源簡介
硬件提供C++的DLL,實際應用是用C#開發的,可以是winform可以是webapi等,通過新建C++項目對DLL進行再次封裝,并提供接口給C#程序使用。
代碼片段和文件信息
//?CSharpInvokeCPP.CPPDemo.cpp?:?定義?DLL?應用程序的導出函數。
//
#include?“stdafx.h“
#include?“malloc.h“
#include?“userinfo.h“
#include?“OpenDeviceInfo.h“
#include?“ReadCert.h“
#include?“Identify.h“
#include?“Autograph.h“
#include?“CertData.h“
#include?
#include?
#include?
#include????//?std::cout??
#include?“./include/isccryptapi.h“
#include?“./include/decodecert.h“
//#include?“../include/CertDecoder.h“
#include?
#include?
#include?
#include?
#include?
#include?
//#include?“D:\固定端口\AuthProject\sourcecode\share\ckwdebuglog.h“
char?g_LogPath[_MAX_PATH];
UINT?g_nDbgDispLvl?g_bDbgToFile;
#include?
using?namespace?std;
typedef?unsigned?char?byte;
typedef?unsigned?char?BYTE;
//const?BOOL?bGBSM2=TRUE;
const?BOOL?bGBSM2?=?FALSE;
#define?MAX_BUF 4096
#define?ERR_LEN 200
#define?BUF_LENGTH?200000
#pragma?comment(lib“./lib/cryp_api“)
#pragma?comment(lib“./lib/decodecert“)
//#pragma?comment(lib“../lib/CertDecoder“)
typedef?struct?{
char?name[32];
int?age;
}?User;
UserInfo*?userInfo;
//?打開USBKey設備
typedef?struct?{
char?Pwd[20];
char?Result[32];
char?ErrorInfo[32];
int?ErrorCode;
}?OpenUSBKey;
OpenDeviceInfo*?opendeviceinfo;
//?讀取用戶證書
typedef?struct?{
char?Pwd[32];
int??CertNum;
int??CertVer;?//?證書版本號
char?CertSID[32];?//?證書序列號
char?CertSender[32];?//?證書簽發者通用名??中國稅務認證中心
char?CertStartTime[32];?//?證書起始時間
char?CertEndTime[32];?//?證書無效時間
char?CertApplyer[32];?//?證書申請者通用名
char?Result[128];
int??ErrorCode;
}?ReadCertType;
ReadCert*?readcert;
//?讀取證書數據
typedef?struct?{
char?Pwd[32];
int??CertNum;
char?CertCode[4096];?//?證書數據
char?Result[128];
int??ErrorCode;
}?CertDataType;
CertData*?certdataInfo;
//?身份認證
typedef?struct?{
char?Pwd[32];
//char?pbClientInfo[4096];
//int?dwClientInfo;
char?Result[4096];
int?ErrorCode;
}?IdentifyType;
Identify*?IdentifyInfo;
//?簽名、驗簽?P1、P7
typedef?struct?{
char?Pwd[32];
char?pbData[4096];
char?pbSignedData[4096];
char?Result[4096];
int?ErrorCode;
}?AutographType;
Autograph*?AutographInfo;
extern?“C“?__declspec(dllexport)?int?Add(int?x?int?y)
{
return?x?+?y;
}
extern?“C“?__declspec(dllexport)?int?Sub(int?x?int?y)
{
return?x?-?y;
}
extern?“C“?__declspec(dllexport)?int?Multiply(int?x?int?y)
{
return?x?*?y;
}
extern?“C“?__declspec(dllexport)?int?Divide(int?x?int?y)
{
return?x?/?y;
}
extern?“C“?__declspec(dllexport)?User*?Create(char*?name?int?age)
{
User*?user?=?(User*)malloc(sizeof(User));
userInfo?=?new?UserInfo(name?age);
strcpy(user->name?userInfo->GetName());
user->age?=?userInfo->GetAge();
//strcpy(user->name?name);
//user->age?=?age;
return?user;
}
//?讀取用戶證書信息
extern?“C“?__declspec(dllexport)?ReadCertType*?ReadCertInfo(char*?pwd?int?CertN
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????655??2018-11-13?10:50??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\Autograph.h
?????文件????????617??2018-11-19?15:24??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\CertData.h
?????文件??????28421??2018-11-30?14:48??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\CSharpInvokeCPP.CPPDemo?-?Nolog.cpp
?????文件??????46664??2018-11-30?14:41??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\CSharpInvokeCPP.CPPDemo.cpp
?????文件???????5707??2018-11-29?14:50??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\CSharpInvokeCPP.CPPDemo.vcxproj
?????文件???????1880??2018-11-29?09:23??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\CSharpInvokeCPP.CPPDemo.vcxproj.filters
?????文件???????3274??2018-11-30?14:48??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\Debug\CSharpIn.1CC9806B.tlog\cl.command.1.tlog
?????文件??????42942??2018-11-30?14:48??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\Debug\CSharpIn.1CC9806B.tlog\CL.read.1.tlog
?????文件???????2926??2018-11-30?14:48??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\Debug\CSharpIn.1CC9806B.tlog\CL.write.1.tlog
?????文件????????201??2018-11-30?14:48??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\Debug\CSharpIn.1CC9806B.tlog\CSharpInvokeCPP.CPPDemo.lastbuildstate
?????文件????????666??2018-11-30?14:48??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\Debug\CSharpIn.1CC9806B.tlog\CSharpInvokeCPP.CPPDemo.write.1u.tlog
?????文件???????2146??2018-11-30?14:48??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\Debug\CSharpIn.1CC9806B.tlog\li
?????文件???????4648??2018-11-30?14:48??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\Debug\CSharpIn.1CC9806B.tlog\li
?????文件???????1314??2018-11-30?14:48??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\Debug\CSharpIn.1CC9806B.tlog\li
?????文件???????2204??2018-11-30?14:48??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\Debug\CSharpInvokeCPP.CPPDemo.Build.CppClean.log
?????文件???????3408??2018-11-30?14:48??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\Debug\CSharpInvokeCPP.CPPDemo.log
?????文件?????213583??2018-11-30?14:48??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\Debug\CSharpInvokeCPP.CPPDemo.obj
?????文件????5570560??2018-11-30?14:48??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\Debug\CSharpInvokeCPP.CPPDemo.pch
?????文件??????14948??2018-11-30?14:48??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\Debug\dllmain.obj
?????文件?????147586??2018-11-30?14:48??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\Debug\stdafx.obj
?????文件?????764928??2018-11-30?14:48??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\Debug\vc120.idb
?????文件?????888832??2018-11-30?14:48??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\Debug\vc120.pdb
?????文件????????389??2018-11-09?09:49??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\dllmain.cpp
?????文件????????651??2018-11-15?14:01??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\Identify.h
?????文件???????4452??2016-05-13?11:24??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\include\ba
?????文件????????561??2016-05-13?11:24??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\include\CertDecoder.h
?????文件??????21361??2016-05-13?11:24??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\include\crypt_err.h
?????文件???????7645??2016-05-13?11:24??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\include\decodecert.h
?????文件??????18165??2016-05-13?11:24??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\include\isccryptapi.h
?????文件???????2650??2016-05-13?11:24??CSharpInvokeCPP\CSharpInvokeCPP.CPPDemo\lib\CertDecoder.lib
............此處省略66個文件信息
評論
共有 條評論