如何:创建和使用 C# DLL(C# 编程指南)

简介:

 

动态链接库 (DLL) 在运行时链接到程序。为说明如何生成和使用 DLL,请看以下方案:

  • MathLibrary.DLL:为库文件,其中包含运行时要调用的方法。此例中,DLL 包含两个方法:Add 和 Multiply。

  • Add.cs:为源文件,其中包含 Add(long i, long j) 方法。该方法返回参数之和。包含 Add 方法的 AddClass 类是命名空间 UtilityMethods 的成员。

  • Mult.cs:为源文件,其中包含 Multiply(long x, long y) 方法。该方法返回参数之积。包含 Multiply 方法的 MultiplyClass 类也是命名空间 UtilityMethods 的成员。

  • TestCode.cs:包含 Main 方法的文件。它使用 DLL 文件中的方法来计算运行时参数的和与积。

 
ExpandedBlockStart.gif
 1 // File: Add.cs  2 namespace UtilityMethods 3 { 4     public class AddClass  5     { 6         public static long Add(long i, long j)  7         {  8             return (i + j); 9         }10     }11 }

ExpandedBlockStart.gif
 1 // File: Mult.cs 2 namespace UtilityMethods  3 { 4     public class MultiplyClass 5     { 6         public static long Multiply(long x, long y)  7         { 8             return (x * y);  9         }10     }11 }
ExpandedBlockStart.gif
 1 // File: TestCode.cs 2  3 using UtilityMethods; 4  5 class TestCode 6 { 7     static void Main(string[] args)  8     { 9         System.Console.WriteLine("Calling methods from MathLibrary.DLL:");10 11         if (args.Length != 2)12         {13             System.Console.WriteLine("Usage: TestCode <num1> <num2>");14             return;15         }16 17         long num1 = long.Parse(args[0]);18         long num2 = long.Parse(args[1]);19 20         long sum = AddClass.Add(num1, num2);21         long product = MultiplyClass.Multiply(num1, num2);22 23         System.Console.WriteLine("{0} + {1} = {2}", num1, num2, sum);24         System.Console.WriteLine("{0} * {1} = {2}", num1, num2, product);25     }26 }

执行 运行CMD

若要运行程序,请输入 EXE 文件的名称,文件名的后面跟两个数字,如下所示:

TestCode 1234 5678

输出

Calling methods from MathLibrary.DLL:
1234 + 5678 = 6912
1234 * 5678 = 7006652

编译代码

若要生成文件 MathLibrary.DLL,请使用以下命令行编译文件 Add.cs 和文件 Mult.cs:

csc /target:library /out:MathLibrary.DLL Add.cs Mult.cs

/target:library 编译器选项通知编译器输出 DLL 文件而不是 EXE 文件。后跟文件名的 /out 编译器选项用于指定 DLL 文件名。否则,编译器使用第一个文件 (Add.cs) 作为 DLL 文件名。

若要生成可执行文件 TestCode.exe,请使用以下命令行:

csc /out:TestCode.exe /reference:MathLibrary.DLL TestCode.cs

/out 编译器选项通知编译器输出 EXE 文件并且指定输出文件名 (TestCode.exe)。此编译器选项是可选的。/引用编译器选项指定该程序使用的 DLL 文件。

原文地址:http://msdn.microsoft.com/zh-cn/library/3707x96z(VS.80).aspx


本文转自Work Hard Work Smart博客园博客,原文链接:http://www.cnblogs.com/linlf03/archive/2011/07/20/2111661.html,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
C#
24. C# 编程:用户设定敌人初始血值的实现
24. C# 编程:用户设定敌人初始血值的实现
20 0
|
2月前
|
SQL 数据库连接 应用服务中间件
C#WinForm基础编程(三)
C#WinForm基础编程
76 0
|
2月前
C#WinForm基础编程(二)
C#WinForm基础编程
57 0
|
2月前
|
C# 数据安全/隐私保护
C#WinForm基础编程(一)
C#WinForm基础编程
61 0
|
4月前
|
数据采集 前端开发 C#
C#编程艺术:Fizzler库助您高效爬取www.twitter.com音频
Twitter是全球最大的社交媒体平台之一,包含丰富的音频资源。用户可以在Twitter上发布、转发、评论和收听各种音频内容,如音乐、播客、新闻、故事等,直接从Twitter抓取音频数据并非易事,尤其是在考虑到可能的封锁和反爬虫机制。Twitter会对频繁访问的IP地址进行限制或封禁,以防止恶意爬虫的行为。因此,我们需要使用一些技术手段来规避这些障碍,确保稳定而高效的数据访问。
C#编程艺术:Fizzler库助您高效爬取www.twitter.com音频
|
3月前
|
程序员 C#
深入理解 C# 编程:枚举、文件处理、异常处理和数字相加
枚举是一个特殊的“类”,表示一组常量(不可更改/只读变量)。 要创建枚举,请使用 enum 关键字(而不是 class 或 interface),并用逗号分隔枚举项:
38 0
|
3天前
|
存储 安全 网络安全
C#编程的安全性与加密技术
【4月更文挑战第21天】C#在.NET框架支持下,以其面向对象和高级特性成为安全软件开发的利器。本文探讨C#在安全加密领域的应用,包括使用System.Security.Cryptography库实现加密算法,利用SSL/TLS保障网络传输安全,进行身份验证,并强调编写安全代码的重要性。实际案例涵盖在线支付、企业应用和文件加密,展示了C#在应对安全挑战的同时,不断拓展其在该领域的潜力和未来前景。
|
4天前
|
程序员 C#
C#编程中的面向对象编程思想
【4月更文挑战第21天】本文探讨了C#中的面向对象编程,包括类、对象、封装、继承和多态。类是对象的抽象,定义属性和行为;对象是类的实例。封装隐藏内部细节,只暴露必要接口。继承允许类复用和扩展属性与行为,而多态使不同类的对象能通过相同接口调用方法。C#通过访问修饰符实现封装,使用虚方法和抽象方法实现多态。理解并应用这些概念,能提升代码的清晰度和可扩展性,助你成为更好的C#程序员。
|
5天前
|
IDE 程序员 C#
C#编程入门:从零开始的旅程
【4月更文挑战第20天】本文引导初学者入门C#编程,从环境搭建开始,推荐使用Visual Studio Community版作为IDE。接着,通过编写&quot;Hello, World!&quot;程序,介绍基本语法,包括数据类型、运算符和表达式。文章还涉及控制结构、函数和方法,以及面向对象编程概念。通过学习,读者将对C#有初步了解,并激发进一步探索编程世界的兴趣。
|
5天前
|
开发框架 .NET Java
探索 C#编程的奥秘与魅力
【4月更文挑战第20天】C#是微软开发的现代、面向对象的编程语言,以其简洁语法、强大功能和跨平台支持脱颖而出。它支持自动垃圾回收、泛型、委托、LINQ,并广泛应用于桌面、Web、移动和游戏开发。C#拥有活跃的开发者社区和丰富的资源,是Unity游戏开发的首选语言。随着.NET Core,C#可在多个操作系统上运行,持续创新,未来发展潜力巨大。