netcore调用(DllImport)C++库的接口(Linux和Windows)

目录

一.前言

二.netcore调用

1.windows库引用dll文件

2.linux库引用so文件

3.C++接口所需结构体

4.实现帮助类/返回结果类


一.前言

C++提供了windows和linux的两种库,netcore调用并实现.

二.netcore调用

1.windows库引用dll文件

public static class VVSecurity_win32
{
    private const string dllName = "Lib/vvsec_win32/VVSecurity.dll";
    [DllImport(dllName, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
    public static extern int VVSec_Initlize(IntPtr pDevice, string pUserPin);
    [DllImport(dllName, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
    public static extern int VVSec_SM4EncryptData(DEVICE_HANDLE pDevice, PKI_DATA plaintext, ref PKI_DATA ciphertext);
    [DllImport(dllName, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
    public static extern int VVSec_SM4DecryptData(DEVICE_HANDLE pDevice, PKI_DATA ciphertext, ref PKI_DATA plaintext);
    [DllImport(dllName, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
    public static extern int VVSec_Finalize(DEVICE_HANDLE pDevice);
}

2.linux库引用so文件

public static class VVSecurity_centos64
{
    private const string dllName = "Lib/vvsec_centosx64/VVSecurity.so";
    [DllImport(dllName, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
    public static extern int VVSec_Initlize(IntPtr pDevice, string pUserPin);
    [DllImport(dllName, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
    public static extern int VVSec_SM4EncryptData(DEVICE_HANDLE pDevice, PKI_DATA plaintext, ref PKI_DATA ciphertext);
    [DllImport(dllName, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
    public static extern int VVSec_SM4DecryptData(DEVICE_HANDLE pDevice, PKI_DATA ciphertext, ref PKI_DATA plaintext);
    [DllImport(dllName, CharSet = CharSet.Ansi, CallingConven
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值