c# 引用外部dll
c# 引用 dll 外部
2023-09-11 14:21:57 时间
c# 引用外部dll
2015-12-09 20:39:38 aaa_dai 阅读数 604 文章标签: DllImportsecurityA.dll 更多
1,实现类
public class SecurityA {
//extern修饰符支持在外部实现方法
//外部修饰符的常见方法是在使用Interop 服务调入非托管代码时与 DllImport 属性一起使用;
//方法还必须声明为 static
[DllImport("securityA.dll")]
static extern IntPtr DeCode(IntPtr source, IntPtr key);
[DllImport("securityA.dll")]
static extern IntPtr EnCode(IntPtr source, IntPtr key);
public string enCrypt(string source,string key){
string output = string.Empty;
try
{
//转换为基本类型 IntPtr: 用于表示指针或句柄的平台特定类型。
IntPtr ptrIn = Marshal.StringToHGlobalAnsi(source);
IntPtr ptrInKey = Marshal.StringToHGlobalAnsi(key);
IntPtr ptrRtn = EnCode(ptrIn, ptrInKey);
output = Marshal.PtrToStringAnsi(ptrRtn);
}
catch(Exception e)
{
throw e;
}
return output;
}
public string deCrypt(string source, string key)
{
string strRtn = string.Empty;
try
{
IntPtr ptrIn = Marshal.StringToHGlobalAnsi(source);
IntPtr ptrInKey = Marshal.StringToHGlobalAnsi(key);
IntPtr ptrRtn = DeCode(ptrIn, ptrInKey);
strRtn = Marshal.PtrToStringAnsi(ptrRtn);
}
catch(Exception e)
{
throw e;
}
return strRtn;
}
}
2,调用
-
string strKey = string.Empty ;
-
SecurityA sa = new SecurityA();
-
btnEncode.Click += delegate
-
{
-
//加密
-
string strCode = sa.enCrypt(txtBefore.EditValue.ToString(),strKey);
-
txtAfter.Text = strCode;
-
};
-
btnDecode.Click += delegate
-
{
-
//解密
-
string strCode = sa.deCrypt(txtAfter.EditValue.ToString(), strKey);
-
txtDecode.Text = strCode;
-
};
-
txtKey.EditValueChanged += delegate { strKey = txtKey.EditValue == null ? string.Empty : txtKey.EditValue.ToString(); };
相关文章
- C#黔驴技巧之去重(Distinct)
- MVC图片上传详解 IIS (安装SSL证书后) 实现 HTTP 自动跳转到 HTTPS C#中Enum用法小结 表达式目录树 “村长”教你测试用例 引用provinces.js的三级联动
- 如何使用T-SQL备份还原数据库及c#如何调用执行? C#中索引器的作用和实现。 jquery控制元素的隐藏和显示的几种方法。 localStorage、sessionStorage用法总结 在AspNetCore中扩展Log系列 - 介绍开源类库的使用(一) span<T>之高性能字符串操作实测
- C# 字符串拼接性能探索 c#中+、string.Concat、string.Format、StringBuilder.Append四种方式进行字符串拼接时的性能
- C#学习记录——Visual Studio为项目添加DLL文件引用
- C#【基础篇】数组(引用类型)作为值参数
- C#50个经典小程序代码
- C#-面向对象:争议TDD(测试驱动开发)
- 《C#零基础入门之百识百例》(五十三)继承介绍 -- 实现计算器
- 关于Unity的C#基础学习(三)
- web 项目添加 x86 的dll 引用,模块 DLL c:WINDOWSsystem32inetsrvaspnetcore.dll 未能加载。
- C# 引用类型和值类型
- c# 引用外部dll