总结的c#调用DLL方法

总结的c#调用DLL方法

ID:37718807

大小:44.50 KB

页数:5页

时间:2019-05-29

总结的c#调用DLL方法_第1页
总结的c#调用DLL方法_第2页
总结的c#调用DLL方法_第3页
总结的c#调用DLL方法_第4页
总结的c#调用DLL方法_第5页
资源描述:

《总结的c#调用DLL方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、现粗略总结两种C#调用DLL库的方法,一种是C++写的DLL库,另一种则是C#生成的DLL库,详细给出了两种不同的使用例子以供菜鸟们学习提高。第一种情况:C#中调用C++生成的DLL(1)用VS写好如下代码编译成DLL库structHHFC_SET{char*UID;intcode;};extern"C"__declspec(dllexport)intPReadUID(HHFC_SET*mystruct){inta=5;CStringds="sea";//mystruct->UID=ds.GetBuffer(ds.GetLength()+1);mystruct->UID=

2、"hello!";testtt;tt.ws();returna;}(2)在C#中生成一个文件名为Ivoke.cs(随意取的)namespacePInvoke//域名空间,随意取{publicclassIvoke//类名随意取{[DllImport("standerMFC.dll")]//nPort:1代表COM1,返回-1代表已经打开COMPORT失败,0代表COM已经打开,返回其它值表示打开对应的COM//publicstaticexterninthp();publicstaticexternintC++中定义的函数名(refHHFC_SETstru);//这样的外部函

3、数引用在每一个CS文件中只能有一个,且只能是函数,不能是类}publicstructHHFC_SET{publicStringUid;publicintcode;}//C++写的DLL文件中定义的结构体}(1)在CS编辑器中再次添加一个CS文件,名字自取,但包函main入口函数,在这个文件中便可以引用C++写的DLL文件中的函数了usingSystem;usingSystem.Text;namespacePInvoke{classClass1{staticvoidMain(string[]args){HHFC_SETstru=newHHFC_SET();stru.Uid=

4、"";HHFC_SETstru1=newHHFC_SET();stru1.Uid="weisong513!";Ivoke.PReadUID(refstru);Console.WriteLine(stru.Uid+","+stru1.Uid);Console.Read();}}}第二种情况:C#调用C#写的DLL文件(一)、准备工作我们需要对我们接下来要做的事情做个简单的介绍,在本文我们将利用C#语言创建一个名为MyDLL.DLL的动态链接库,在这个动态链接库文件中我们将提供两个功能一个是对两个参数交换他们的值,另一个功能是求两个参数的最大公约数。然后创建一个应用程序使用这

5、个DLL。运行并输出结果。(二)、创建DLL(1)创建以下三个C#代码文件:1、MySwap.csusingSystem;namespaceMyMethods{publicclassSwapClass{publicstaticboolSwap(reflongi,reflongj){i=i+j;j=i-j;i=i-j;returntrue;}}}2、MyMaxCD.csusingSystem;namespaceMyMethods{publicclassMaxCDClass{publicstaticlongMaxCD(longi,longj){longa,b,temp;if(

6、i>j){a=i;b=j;}else{b=i;a=j;}temp=a%b;while(temp!=0){a=b;b=temp;temp=a%b;}returnb;}}}}(2)接下来的任务是把这两个cs文件变成我们需要的DLL文件。在安装了Microsoft.NETFramework的操作系统上的Windows所在目录下找到Microsoft.NET目录,找到C#的编译器:CSC.EXE运行:csc/target:library/out:MyDLL.DLLMySwap.csMyMaxCD.cs完成后可在本目录下面找到我们刚才生成的MyDLL.DLL文件/target:li

7、brary编译器选项通知编译器输出DLL文件而不是EXE文件。后跟文件名的/out编译器选项用于指定DLL文件名。如果/out后面不跟文件名编译器使用第一个文件(MySwap.cs)作为DLL文件名。生成的文件为MySwap.DLL文件(3)创建动态链接库文件的任务完成了。(三)将刚生成的DLL文件运用到C#文件中编写如下:usingSystem;usingMyMethods;//这里我们引用刚才定义的名称空间,如果刚才的两个文件我们写在两个不同的名称空间classMyClient{publicstaticvoidMain(s

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。