点NET中DLL简单生产以及使用

点NET中DLL简单生产以及使用

ID:38653216

大小:518.50 KB

页数:5页

时间:2019-06-17

点NET中DLL简单生产以及使用_第1页
点NET中DLL简单生产以及使用_第2页
点NET中DLL简单生产以及使用_第3页
点NET中DLL简单生产以及使用_第4页
点NET中DLL简单生产以及使用_第5页
资源描述:

《点NET中DLL简单生产以及使用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、.NET生成与调用DLL文件DLL文件的作用,代码不兼容的情况下调用DLL减少工作量,这是我这个菜鸟的体会。我用.C文件生成一个DLL文件,用C#调用它。使用.net平台,添加(新建或者)一个项目如图:确定后如图:完成后,在解决方案中:在这个项目中的源文件中添加现有项(如果没代码自己写的话:添加新建项),代码都要加上:#include,以及BOOLAPIENTRYDllMain函数(格式固定)。其他编程格式和C一样,如果需要头文件,添加头文件。添加DLL文件的函数名加上前缀如:void__declspec(dllexport)__cdeclroundsqurat

2、(floatR,float*outls)这是我的DLL文件的代码,最终调用roundsqurat函数。#include#include#include#includeBOOLAPIENTRYDllMain(HINSTANCEhInst/*Libraryinstancehandle.*/,DWORDreason/*Reasonthisfunctionisbeingcalled.*/,LPVOIDreserved/*Notused.*/){switch(reason){caseDLL_PROCESS_ATTACH

3、:break;caseDLL_PROCESS_DETACH:break;caseDLL_THREAD_ATTACH:break;caseDLL_THREAD_DETACH:break;}/*ReturnsTRUEonsuccess,FALSEonfailure*/returnTRUE;}void__declspec(dllexport)__cdeclroundsqurat(floatR,float*outls){floatpi=3.14159;outls[0]=2*pi*R;}写完代码后,生产解决方案,在该工程目录下就出现了一个DLL文件,将这个DLL文件复制到我们应用工程的根目录下

4、,(..项目binDebug,改文件有执行文件)。调用动态链接库时,先要调用命名空间:usingSystem.Runtime.InteropServices;然后声明API函数:其中“"suanfadll.dll"”问动态链接库,roundsqurat是动态链接库的函数(及入口),jfklsa是动态链接库roundsqurat别名,在这个工程中调用jfklsa就可以了[DllImport("suanfadll.dll",EntryPoint="roundsqurat")]publicstaticexternintjfklsa(floatR,reffloatoutls);这样使用

5、后就可以用了,如果要调试DLL部分,需要将其工程设为启动项,并且他的属性中也要改变:(其中命令是执行文件,工作目录就是DLL文件和执行文件的位置),调试器类型改为“仅限本机”就可以了。这样在调试过程中:就能跳到DLL文件的代码中了。当然他不是跳到了DLL文件里,而是我们添加了这个DLL文件的工程,我们有这个DLL文件的源代码,他是跳到我们的.C文件中的。usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSyst

6、em.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Runtime.InteropServices;//usingSystem.Runtime.InteropServices;namespacedlluse{publicpartialclassForm1:Form{[DllImport("suanfadll.dll",EntryPoint="roundsqurat")]publicstaticexternintjfklsa(floatR,reffloatoutls);publicForm1(){Initiali

7、zeComponent();}//一个按键的事件,将得到的圆半径周长输出到text。Text中privatevoidbutton1_Click(objectsender,EventArgse){floatx=0;jfklsa(2,refx);textBox1.Text=x.ToString()+",";}}}

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

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

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