c#怎样创建类库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#怎样创建类库相关的知识,希望对你有一定的参考价值。
c#怎样创建类库
使用C#生成dll文件并调用一、创建dll文件:
例如生成一个md5编码判断状态的文件,即,输入一个字符串(string A)和一个32位md5编码(string B),判断此字符串A对应的32位md5编码是否与B相等,如果相等返回true,否则返回false。
打开VS 2005,“文件”--》“新建”--“项目”,选择“Windows 控件库”,命名后点击“确定”,在“UserControl1.cs”中输入以下代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Windows.Forms;
using System.Text;
using System.Security.Cryptography;
namespace md5
public partial class Program : UserControl
#region MD5 32位加密:GetMd5Str32
/// <summary>
/// 32位MD5加密
/// </summary>
/// <param name="strSource">待加密字串</param>
/// <returns>加密后的字串</returns>
public static string GetMd5Str32(string strSource)
byte[] bytes = Encoding.ASCII.GetBytes(strSource);
byte[] hashValue = ((System.Security.Cryptography.HashAlgorithm)System.Security.Cryptography.CryptoConfig.CreateFromName("MD5")).ComputeHash(bytes);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 16; i++)
sb.Append(hashValue[i].ToString("x2"));
return sb.ToString().ToUpper();
#endregion
#region 核对md5编码是否一致:CheckMd5String()
/// <summary>
/// 核对md5编码是否一致
/// </summary>
/// <param name="ConvertString"></param>
/// <returns>如果一致返回true,否则返回false</returns>
///
public static bool CheckMd5String(string str1, string str2)
string md5String = str1; //需要验证的字符串
string md5DbString = str2; //需要核对的32位md5编码
int result = string.Compare(md5.Program.GetMd5Str32(str1), md5DbString, true);
if (result == 0)
return true;
else
return false;
#endregion
修改“UserControl1.Designer.cs”中的命名空间为“md5”,方法为“Program”,即可生成dll文件。
在...\bin\Debug文件假下,可以找到相应的dll文件。
二、部署dll流程:
首先把dll文件放到应用程序...\bin\Debug\下;
然后在解决方案中添加引用:右键鼠标-->添加引用-->浏览-->选择dll放置路径后点击“确定”。
注意:要在应用文件头处使用using md5;命令。
测试应用程序代码,如下:Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using md5;
namespace WindowsApplication1
public partial class Form1 : Form
public Form1()
InitializeComponent();
private void button1_Click(object sender, EventArgs e)
string str1 = textBox1.Text.ToString();
string md5String = textBox2.Text.ToString();
textBox3.Text = md5.Program.GetMd5Str32(str1);
textBox4.Text = md5.Program.CheckMd5String(str1, md5String).ToString();
private void button2_Click(object sender, EventArgs e)
this.Close();
三、注意点:
1、在C#应用程序开发过程中,加载dll文件时,报错“未能加载文件或程序集“md5, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件。”,请指点一下是什么原因?
解决:这是因为加载dll的路径问题,正确加载方式为:在“解决方案”的“引用”文件上右击鼠标,选择“添加引用”---》在“浏览”选项卡中添加引用(注意:自己定义的dll文件不能在“.NET”选项卡中添加。)
------------------------------------------------------------------------------------------------------------------
c#生成DLL文件,内部函数的问题
用C#编写一组处理XML文档的代码,由于要求生成DLL文件,并由外部的其他工具访问动态库中的文件,
但是用Dependency Walker检测我生成的这个DLL文件没有显示任何的函数,以前没做过这方面的东西,求教了
代码如下:
using System;
using System.IO;
using System.Xml;
public class Sample
public static void Main()
DeleteArg();
static void DeleteArg()
XmlDocument doc = new XmlDocument();
doc.Load(@"c:\\data1.xml");
XmlNode root = doc.DocumentElement;
XmlNode Node1;
XmlNodeList nodeList = doc.SelectSingleNode("/Entity/Columns").ChildNodes;
foreach (XmlNode xn in nodeList)
XmlElement xe = (XmlElement)xn;
if (xe.GetAttribute("Name") == "SysModuleID")
xe.RemoveAll();
//xe.RemoveAttribute("Name");//删除Name属性
doc.Save("c:\\data1.xml");//保存这个文档到文件中
以上代码实现删除XML文件中某一节点的功能,如何在生成DLL后能够使用检测工具检测出DeleteArg函数,
使用Dependency Walker没检测出该函数是不是以为着这个动态库文件不能被调用.
----
因为.net的程序不是这样把函数放在导出表的, 我记得.net做的dll只导出了一个_CorDllMain的方法,
所以用Dependency Walker是看不出来的. 如果你想看.net做的dll导出了什么内容,可以用反射查看元数据
----
生成这个DLL库文件,是想要别的工具运行这个动态库文件,实现DELETEARG()这个函数的功能
----
可以的
----
你上面的代码不是生成DLL的,而是一个控制台应用程序.
要想创建动态库(DLL),在新建项目窗口中选择"类库", 默认的代码是这样的:
using System;
using System.Collections.Generic;
using System.Text;
namespace ClassLibrary2
public class Class1
// 然后添加你的代码.最后代码如下:
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
namespace ClassLibrary2
public class Class1
public void DeleteArg()
XmlDocument doc = new XmlDocument();
doc.Load(@"c:\\data1.xml");
XmlNode root = doc.DocumentElement;
XmlNode Node1;
XmlNodeList nodeList = doc.SelectSingleNode("/Entity/Columns").ChildNodes;
foreach (XmlNode xn in nodeList)
XmlElement xe = (XmlElement)xn;
if (xe.GetAttribute("Name") == "SysModuleID")
xe.RemoveAll();
//xe.RemoveAttribute("Name");//删除Name属性
doc.Save("c:\\data1.xml");//保存这个文档到文件中
最后编译一下就可以,
在Debug文件夹下回产生一个dll文件,最后在需要的工程里,将这个dll文件引进进去就可以用 参考技术A VS.NET
文件-->新建-->项目-->Visual C#项目-->类库
如果是Win程序,那么在项目属性-->通用属性-->常规-->输出类型-->类库 参考技术B 选择解决方案>添加>新建项目>类库本回答被提问者采纳 参考技术C 打开VS-->文件-->新建-->项目-->选择C#语言(选择已安装模板:类库),这样就可以了!
Unity与 DLL文件 ☀️| 怎样使用 C# 类库 生成一个DLL文件 并 调用!
- 🎬生成DLL文件
- 🎥使用 C#类库 将Unity中的脚本打包成 DLL文件 并调用
- 🏳️🌈第一步:打开Visual Studio之后,新建一个项目
- 🏳️🌈第二步:选择类库(.NET Framework),改个名字,选择一个位置路径
- 🏳️🌈第三步:然后在创建的脚本中简单写一点代码,如下所示
- 🏳️🌈第四步:然后在解决方案资源管理器右键这个脚本 -> 添加 -> 引用
- 🏳️🌈第五步:然后点击浏览,找到Unity安装路径 -> Editor -> Data -> Managed 下的这两个DLL 文件,点击添加!
- 🏳️🌈第六步:在Unity中写一个脚本test,内容如下:
- 🏳️🌈第七步:在类库中引入unity脚本文件
- 🏳️🌈第八步:生成解决方案,生成DLL文件
- 🏳️🌈第九步:在这个VS项目的生成路径下找到生成的DLL文件
- 🏳️🌈第十步:在Unity中新建一个文件夹Plugins,并将生成的这个DLL文件放进去
- 🏳️🌈第十一步:Unity中新建一个脚本Test,调用DLL中的方法,别忘了将该脚本挂在到摄像机上
- 💬总结
📢前言
- 前一篇博客讲了一下
DLL的基本概念
,链接在这:Unity与 DLL文件 ☀️| 什么是DLL✨? - 那这篇文章就对
怎样生成一个DLL文件
做一个概述 - 一起来看一下怎样生成一个简单的
DLL
吧!
🎬生成DLL文件
生成DLL文件
有好几种方式,可以使用 C#类库
来生成 DLL文件
并使用
也可以使用VC C++语言
编写代码生成DLL文件
使用
我们先来看第一种方式,可以使用C#类库来生成DLL文件并调用
🎥使用 C#类库 将Unity中的脚本打包成 DLL文件 并调用
首先,我们打开Visual Studio
新建一个类库。我这里使用的是Visual Studio2017,不同版本可能有所差异,不过问题不大
如果没有Visual Studio
这个软件的可以在网上搜一下相关文章下载就好啦,能看到这篇文章的小伙伴应该都安装了才对!
🏳️🌈第一步:打开Visual Studio之后,新建一个项目
🏳️🌈第二步:选择类库(.NET Framework),改个名字,选择一个位置路径
🏳️🌈第三步:然后在创建的脚本中简单写一点代码,如下所示
🏳️🌈第四步:然后在解决方案资源管理器右键这个脚本 -> 添加 -> 引用
🏳️🌈第五步:然后点击浏览,找到Unity安装路径 -> Editor -> Data -> Managed 下的这两个DLL 文件,点击添加!
然后点击确定
🏳️🌈第六步:在Unity中写一个脚本test,内容如下:
🏳️🌈第七步:在类库中引入unity脚本文件
🏳️🌈第八步:生成解决方案,生成DLL文件
🏳️🌈第九步:在这个VS项目的生成路径下找到生成的DLL文件
🏳️🌈第十步:在Unity中新建一个文件夹Plugins,并将生成的这个DLL文件放进去
然后直接将这个test脚本
挂在到摄像机上即可
然后再把原来的Unity中写的test脚本删除掉,运行程序即可!
打印的内容就是我们将Unity中的脚本打包成DLL文件
中的脚本内容
到这一步只是将Unity中C#
写的脚本打包成DLL文件
并调用了一下,并没有调用DLL
本身的内容,那接下来就是调用一下DLL中的内容!
🏳️🌈第十一步:Unity中新建一个脚本Test,调用DLL中的方法,别忘了将该脚本挂在到摄像机上
运行后打印如下:就是我们DLL文件
中的方法
好啦,那使用C#打包成DLL文件
,并进行调用的方法就介绍完毕啦!
💬总结
- 本文讲述了怎样通过
C#类库
来生成一个DLL文件
并调用 - 代码都是通过
C#语言
编写,与我们平时写代码并无差异,所以也很简单 - 还有另一种方法是通过VC,使用
C++语言
编写生成的DLL文件
,这种用到的时候也比较多 - 那下一篇再讲一下
通过VC生成 DLL文件并调用
,本篇文章就到这里啦!
🚀往期优质文章分享
- ❤️Unity零基础到入门 | 游戏引擎 Unity 从0到1的 系统学习 路线【全面总结-建议收藏】!
- 🧡花一天时间做一个高质量飞机大战游戏,过万字Unity完整教程!漂亮学妹看了直呼666!
- 💛回忆童年和小伙伴一起玩过的经典游戏【炸弹人小游戏】制作过程+解析
- 💚通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难
- 🤍爆肝整整一个周末写一款类似 皇室战争 的 即时战斗类 游戏Demo!两万多字游戏制作过程+解析!
- 💙一款类似“恐龙快打”的 横版街机格斗游戏 该如何制作?| 一起来学习 顺便送源码【码文不易,建议收藏学习】
- 💜【超实用技巧】| 提高写文的质量 和 速率必学技能: Typora 图床配置 详细说明
🚀 优质专栏分享 🚀 |
- 🎄如果感觉文章看完了不过瘾,可以来我的其他 专栏 看一下哦~
- 🎄比如以下几个专栏:Unity基础知识学习专栏、Unity游戏制作专栏、Unity实战类项目 和 算法学习专栏
- 🎄可以学习更多的关于Unity引擎的相关内容哦!直接点击下面颜色字体就可以跳转啦!
以上是关于c#怎样创建类库的主要内容,如果未能解决你的问题,请参考以下文章