首页 > VS2008生成DLL文件的方法、引用dll文件以及意义

VS2008生成DLL文件的方法、引用dll文件以及意义

一 VS2008生成dll文件的方法
    有两种方法:
    1:傻瓜式操作
    打开VS2008,依次点击:菜单->文件->新建项目->项目类型visual C#(这里假设为该项目所取的名字是DllBuild)->类库(注意必须是类库),即新建一个由纯.cs类库文件组成的程序集,写好代码之后(例如写了一个名为DllTest.cs的类,该类的namespace取名为DllTestNS),再依次点击:菜单->生成->生成DllBuild,这样你的DllBuild/DllBuild/bin/Debug文件夹或者DllBuild/DllBuild/obj/Debug文件夹里便会自动生成dll文件啦,该文件名称与项目名称一致,即为DllBuild.dll。
    2:使用VS命令行
    依次点击:开始->运行,输入cmd,在打开的命令行窗口中输入:cd  ,按回车,输入下面一行命令:
    cd c:Program FilesMicrosoft Visual Studio 8SDKv2.0>csc /target:library /out:d:Pager.dll d:Pager.cs
     按回车,这样,便将d:Pager.cs 文件编译为dll文件并保存为d:Pager.dll。
    在这里有可能会报错,原因是csc.exe文件找不到。此时只需打开资源浏览器explorer,在“我的电脑”中搜索“csc.exe”文件即可,比如我的csc.exe文件便是在:
C:WINDOWSMicrosoft.NETFrameworkv3.5csc.exe。为了不至于每次编译dll时都要输入如此长的VS命令行路径,我们可以将该路径添加到系统环境变量中。具体的添加方法请见:http://hi.baidu.com/yuemingfeng/blog/item/f3bf3c24b86db46934a80fcc.html 。当添加完环境变量后,现在要将.cs文件编译为dll文件便十分方便:
    点击“开始”->“运行”,输入: csc  /target:library /out:d:Pager.dll d:Pager.cs
这样便直接进行编译。
 
    二 dll文件的引用及动态加载
    2.1 引用dll文件
    c++文件必须有头文件和lib文件方能编译通过,在运行时还必须调用相应的dll文件;而c#则直接将头文件和lib文件都封装进dll文件中,因此,c#编程无需再引入这两个文件,但是在运行时或者编译时很多时候都需要引用dll文件。   
    在上一步,我们生成(Build)了名为DllBuild的项目,并生成了DllBuild.dll文件,现在我们重新新建一个模板类型为Console Application(控制台应用程序)的项目,名为DllInvoke,新建好项目之后,从资源浏览器中打开该项目,依次打开DllInvokeDllInvokeinDebug,将刚才生成的DllBuild.dll文件复制到Debug目录下,同时打开DllInvokeDllInvokeDllInvoke.csproj文件(右击,用记事本打开),打开后内容如下:


 

    Debug

    AnyCPU

    8.0.50727

    2.0

    {EE4DDE2F-AC60-4A50-A988-AB936EB00103}

    Exe

    Properties

    DllInvoke

    DllInvoke

 


 

    true

    full

    false

    binDebug

    DEBUG;TRACE

    prompt

    4

 


 

    pdbonly

    true

    binRelease

    TRACE

    prompt

    4

 


 

   

   

     


 

   

   

 


 

 



    可以看到,该文件主要描述了改项目的一些系统配置和属性,例如项目名称和根命名空间名称、调试方式等等。由于要引用dll文件,因此我们需要在该xml格式的文件中添加关于该dll文件的描述信息,添加到节点中(即上文字体颜色为绿色的地方),添加后,该处内容变为:


   

   

   

    test, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">

      False

      ....DllBuild.dll

   
 
 

更多相关:

  • 本文来自 运维人生 ,作者:fly是个稻草人链接:http://www.ywadmin.com/?id=76误删除linux系统文件了?不用急,本文将给你一个恢复linux文件的方法,让你轻松应对运维中的各风险问题。方法总比问题多~说在前面的话针对日常维护操作,难免会出现文件误删除的操作。大家熟知linux文件系统不同win有回收...

  • 原文来自SecIN社区—作者:WiHat0x00 什么是WebShell渗透测试工作的一个阶段性目标就是获取目标服务器的操作控制权限,于是WebShell便应运而生。Webshell中的WEB就是web服务,shell就是管理攻击者与操作系统之间的交互。Webshell被称为攻击者通过Web服务器端口对Web服务器有一定的操作权限,而...

  • 断电时文件系统发生了什么?硬盘又发生了什么?下一次开机时写到一半的文件在系统层面还在吗?在底层还在吗?更进一步的, 文件系统如何保证事务性, 会不会存在某种极端情况导致例如最后几个bit还没写完, 文件系统却认为它成功了的情况?回答不限任何文件系统,谢谢!下面是「北极」的回复分享断电的一瞬间,很多事情是无法确定的:1. 你无法确定...

  • 接到项目需求。需要搭建一个页面进行交互,慢慢来b (2).jpg使用python django框架进行页面的搭建在项目文件下打开窗口,输入命令;django-admin startproject helloword#在文件helloword/helloword/创建view.py在view.py文件中输入以代码from django....

  • 常见的错误集合解决方案(一)No.1提示错误'Microsoft.VC90.CRT,version="9.0.21022.8"把Microsoft.NET Framework 3.5.1下面的全部勾选上。No.2解决Qt Designer设计的图标但是VS生成不显示问题描述:在Qt designer中为菜单栏和工具栏设计的图标,但是...

  •     第1步:打开JSP项目目录  第2步:设置项目结构 实际上就是把Projects Settings下面的Project、Modules、Libraries、Facets和Artifacts都设置一遍,我们慢慢往下看吧 这里需要注意:在Mdules下面添加Web和在Facets下面添加Web...

  • 前置条件:安装了gittab.exe,并拉取了对应项目 导入了该项目到vscode之后  ...

  • 先安装Node.jshttp://nodejs.cn/download 推荐国人安装淘宝npm镜像 npm install -g cnpm --registry=https://registry.npm.taobao.org 然后创建一个空文件夹,在资源管理器地址栏输入cmd,回车然后输入   cnpm install vue-...

  • 学会操作git和使用Github来管理代码是技术开发人员的必备基本功,在工作中越来越发现,熟练掌握好git这个利器对工作非常有帮助, 遂静心专门攻之. 下面是我在github上创建的第一个测试项目.详细步骤记录如下. 一.注册Github账号 如果事先没有github的账号,首先需要注册一个github账号,需要登陆github...

  •  .net core相比之前.net的是一个可以跨平台,脱离iis运行的语言,并且项目启动的效率要比用iis启动快,可以说进一步提高了开发的效率。要想自己的项目core脱离iis,首先选择vs启动项目的载体:  如下图,不要选择IIS Express      选择好后再启动项目,会出现一个cmd窗口,我的理解这个窗口就类似于Core...