如何利用C#创建和调用DLL
日期:2008年6月15日 作者: 查看:[大字体 中字体 小字体]-
接下来的任务是把这两个cs文件变成我们需要的DLL文件。方法是这样的:
在安装了Microsoft.NET Framework的操作系统上,我们可以在Windows所在目录下找到Microsoft.NET目录。在这个目录下面提供了C#的编译器,CSC.EXE
运行:csc /target:library /out:MyDLL.DLL MySwap.cs MyMaxCD.cs
完成后可在本目录下面找到我们刚才生成的MyDLL.DLL文件
/target:library 编译器选项通知编译器输出 DLL 文件而不是 EXE 文件。后跟文件名的 /out 编译器选项用于指定 DLL 文件名。
如果/out后面不跟文件名编译器使用第一个文件 (MySwap.cs) 作为 DLL 文件名。生成的文件为MySwap.DLL文件
OK!我们创建动态链接库文件的任务完成了,现在是我们享受劳动成果的时候了,下面我将介绍如何使用我们所创建的动态链接库文件。
四、 使用DLL
我们简单写一个小程序来测试一下我们刚才写的两个方法是否正确,好吧,跟我来:
MyClient.cs
using System;using MyMethods;
//这里我们引用刚才定义的名称空间,如果刚才的两个文件我们写在两个不同的名称空间
class MyClient{
public static void Main(string[] args)
{
if (args.Length != 2)
{
Console.WriteLine("Usage: MyClient <num1> <num2>");
return;
}
long num1 = long.Parse(args[0]);
long num2 = long.Parse(args[1]);
SwapClass.Swap(ref num1,ref num2);
// 请注意,文件开头的 using 指令使您得以在编译时使用未限定的类名来引用 DLL 方法
Console.WriteLine("The result of swap is num1 = {0} and num2 ={1}",num1, num2);
long maxcd = MaxCDClass.MaxCD(num1,num2);
Console.WriteLine("The MaxCD of {0} and {1} is {2}",num1, num2, maxcd);
}
}
若要生成可执行文件 MyClient.exe,请使用以下命令行:
csc /out:MyClient.exe /reference:MyLibrary.DLL MyClient.cs
/out 编译器选项通知编译器输出 EXE 文件并且指定输出文件名 (MyClient.exe)。/reference 编译器选项指定该程序所引用的 DLL 文件。
五、执行
若要运行程序,请输入 EXE 文件的名称,文件名的后面跟两个数字,例如:
MyClient 123 456
六、输出
The result of swap is num1 = 456 and num2 = 123
The MaxCD of 456 and 123 is 3
七、小结
动态链接具有下列优点:
节省内存和减少交换操作。很多进程可以同时使用一个 DLL,在内存中共享该 DLL 的一个副本。相反,对于每个用静态链接库生成的应用程序,Windows 必须在内存中加载库代码的一个副本。
- 上一页 [1] [2] [3] 下一页
-
- 如何利用C#创建和调用DLL 相关文章:
- ·gdiplus - gdiplus.dll - DLL文件信息
- ·rmoc3260 - rmoc3260.dll - Process Information
- ·tabctl32 - tabctl32.ocx - DLL文件信息
- ·windows 无法加载 internet 配置信息库(icfgnt.dll)。发生以下错误:找不到指定的模块
- ·进行DLL注入的三种方法
- ·eusexe.exe无法找到入口.无法定位程序输入点k32thk1632prolog于动态连接库KERNEL32.dll上
- ·修改dll文件工具和说明
- ·如何利用C#创建和调用DLL
- ·mfc71 - mfc71.dll - Process Information
- ·什么是动态链接库(DLL)以及常见问题
- 如何利用C#创建和调用DLL 相关软件
- ·DLL备份恢复工具(DllcacheManager) V1.6
- ·DLL Export Viewer V1.10 汉化版
- ·ZIP.DLL解压缩(动态库) V1.0.2.2
- ·月影短信--免费编程接口(DLL) V1.0
- ·KPSD.DLL软件保护库 V3.1
- ·DLL Show V4.7 汉化版
- ·InjectedDLL V1.00 汉化版
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
精品推荐
热点TOP10
- ·通常C#面试题
- ·用C#写计算器程序
- ·C#编写的windows计算器-源代码
- ·ASP.NET:根据IP获取当地天气预报的实现
- ·ASP.NET上传大文件控件
- ·C#中使用进度条
- ·Asp.net(c#)数据库操作类
- ·C#導出Excel源碼
- ·C#算术表达式求值
- ·C#获取本地计算机名IP,Mac地址
- ·使用 ADO.NET 访问 Oracle 9i 存储过程
- ·ASP.NET购物车的实现及结算处理
- ·ado.net 如何读取 excel
- ·AspNetPager分页控件--使用方法
- ·ASP.NET SESSION的使用及原理
- ·ASP.NET中水晶报表的使用
- ·在Visual C# 2.0中创建优雅代码
- ·asp.net(C#)海量数据表高效率分页算法(易懂,不使用存储过程)
- ·.net 2.0(c#)下简单的FTP应用程序
- ·ASP.NET程序中常用的三十三种代码
特别推荐
- ·ASP.NET 2.0角色及成员管理
- ·如何利用C#创建和调用DLL
- ·ASP.NET的几个特点
- ·实例分享:自己开发的自定义分页控件
- ·ASP.NET之上传文件管理策略
- ·ASP.NET程序中常用的三十三种代码
- ·ASP.Net中保护自定义的服务器控件
- ·C#设计的一个向导程序(Wizard)框架
- ·.net中即时消息发送的实现……
- ·ASP.NET动态创建控件之绝境求生
- ·.NET调用Oracle存储过程,使用数组类型的参数(如ArrayList)
- ·C#中水晶按钮的程序生成
- ·日历函数单元
- ·图片保存到数据库和从数据库读取图片并显示(c#)
- ·ASP.NET2.0下含有DropDownList的GridView编辑、删除的完整例子!
- ·C#中四种进程或线程同步互斥的控制方法
- ·[C#]解决读写包含汉字的txt文件时乱码的问题
- ·AspNetPager分页控件--使用方法
- ·六步使用ICallbackEventHandler实现无刷新回调
- ·从 ASP.NET 服务器控件插入客户端脚本
