一 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 Files\Microsoft Visual Studio 8\SDK\v2.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:\WINDOWS\Microsoft.NET\Framework\v3.5\csc.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,新建好项目之后,从资源浏览器中打开该项目,依次打开DllInvoke\DllInvoke\bin\Debug\,将刚才生成的DllBuild.dll文件复制到Debug目录下,同时打开DllInvoke\DllInvoke\DllInvoke.csproj文件(右击,用记事本打开),打开后内容如下:
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>8.0.50727</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{EE4DDE2F-AC60-4A50-A988-AB936EB00103}</ProjectGuid>
    <OutputType>Exe</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>DllInvoke</RootNamespace>
    <AssemblyName>DllInvoke</AssemblyName>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Xml" />  </ItemGroup>
  <ItemGroup>
    <Compile Include="Program.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
       Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
</Project>
    可以看到,该文件主要描述了改项目的一些系统配置和属性,例如项目名称和根命名空间名称、调试方式等等。由于要引用dll文件,因此我们需要在该xml格式的文件中添加关于该dll文件的描述信息,添加到<ItemGroup>节点中(即上文字体颜色为绿色的地方),添加后,该处内容变为:
<ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Xml" />
    <Reference Include="test, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\..\DllBuild.dll</HintPath>
    </Reference>  </ItemGroup> 

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

  1. Java基础 Stream流方法引用异常文件

    Stream流 引例 需求:按照下面要求完成集合的创建和遍历 创建一个集合,存储多个字符串元素 1. 把所有以"曹"开头的元素存储到新集合中 2. 把曹开头,长度为3的元素存储到新 ...

  2. 解决api-ms-win-crt-runtimel1-1-0.dll缺失的方法 api-ms-win-crt-runtime-l1-1-0.dll是电脑系统重要组件,如果缺少会导致很多程序无法运行,

    api-ms-win-crt-runtime-l1-1-0.dll是电脑系统重要组件,如果缺少会导致很多程序无法运行,下面我为大家找出解决办法,希望能帮到大家: 安装VC redit.exe程序解决 ...

  3. linux查看文件的方法,查看linux文件的方法

    查看linux文件的方法 发布时间:2020-05-06 10:54:14 来源:亿速云 阅读:171 作者:小新 今天小编给大家分享的是查看linux文件的方法,相信很多人都不太了解,为了让大家更加 ...

  4. ftp上传当天文件的方法_ftp自动上传文件,ftp自动上传文件的配置方法及使用教程...

    IIS7服务器管理工具具备所有服务器管理工具的功能,比如批量管理.同时它还有很多的自主研发功能.比如同步操作.到期提醒.数据安全和定期执行.当然适用的系统也有Windows和liunx操作系统.还支持 ...

  5. 电脑提示找不到msvcr100.dll的解决方法-msvcr100.dll丢失怎样修复

    丢失msvcr100.dll或者损坏会导致电脑很多软件跟游戏都无法正常打开运行.还有不少小伙伴不知道怎么修复,小编今天就把修复教程分享给大家: 最简单的修复方法电脑开机打开任意一个浏览器顶部输入    ...

  6. python的哪个模块提供了文件处理方法_Python处理文件路径有哪些方法?

    在python中找寻路径的方法有很多,当然也有新方法在不断地更新中.对于新手的python小白来说,肯定是越简单越好用的最受欢迎.小编经过一番找寻,为大家带来两种方法,大家可以根据接受情况选择. 老方 ...

  7. python修改文件的方法_python中文件操作实现全文或单行替换方法

    python修改文件时,使用w模式会将原本的文件清空/覆盖.可以先用读(r)的方式打开,写到内存中,然后再用写(w)的方式打开.替换文本中的taste 为 tasting Yesterday when ...

  8. a标签点击下载文件通用方法,pdf文件预览不能下载解决方法

    function downloadFile(url) {var request = new XMLHttpRequest();request.responseType = "blob&quo ...

  9. Excel-VBA操作文件四大方法

    原文地址为: Excel-VBA操作文件四大方法 Excel-VBA操作文件四大方法之一 在我们日常使用Excel的时候,不仅会用到当前Excel文件的数据,还经常需要访问其他的数据文件.这些数据文件 ...

  10. 网页如何打开php文件怎么打开,PHP文件怎么打开?打开PHP文件方法介绍

    下载站中的下载连接其实是php脚本文件控制的,有的不支持一些下载工具下载,防止大量占用网站服务器资源,当使用讯雷下载的连接就会失效,也可能是服务器链节地址失效,导致下载到的东西只是也个php脚本文件, ...

最新文章

  1. 报错android.view.InflateException: Binary XML file line #11: Attempt to invoke virtual method 'boolean
  2. 2021-03-15 数据挖掘算法—K-Means算法 Python版本
  3. python 函数教程:必选参数与默认参数
  4. python用sqlite数据库,python 中使用sqlite数据库
  5. 存储世界瞬息万变 SSD掀行业浪潮
  6. Web.py Cookbook 简体中文版 - 在webpy中使用Cheetah模板引擎
  7. javaweb实训第二天上午——jQuery笔记
  8. Linux系统安装完成后创建交换空间
  9. opencv中的子库
  10. 数字信号处理matlab实验z变换,数字信号处理MATLAB实验4案例.doc
  11. 专业抠图软件Super PhotoCut Pro for Mac
  12. 独家研究 I 某新一线城市中高端养老社区项目(CCRC)入住客户画像深度洞察研究报告
  13. 解决java.lang.IndexOutOfBoundsException: Index: 0, Size: 0的问题
  14. 给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。
  15. 潘金莲写给比尔盖茨的情书
  16. 荣耀上线“荣耀亲选”对标有品,小米要当心了!
  17. linux挂载u盘出错_linux 无法挂载u盘的解决办法
  18. 九连环问题(Java)
  19. qq密码自动测试软件,QQ2004测试版密码获取演示
  20. Java 8 的发展

热门文章

  1. 裸辞,迎接2019年的春天
  2. 关于保存到session里的信息
  3. [BOI2019][第K大问题][暴力剪枝]D2T1 Olympiads
  4. 配置IIS服务器提供APP文件下载
  5. 行式填报表轻松搞定流水号
  6. Android监听安装卸载
  7. Android LayoutInflater源码解析:你真的能正确使用吗?
  8. 自欺欺人的使用 NSTimer 销毁
  9. TOMCAT报错:HTTP Status 404 -
  10. 把CentOS启动进度条替换为详细信息