- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
团队软件过程-Read.ppt
第十章 组织应用程序
本章内容
编译的不同方式
命名空间
指示符
举例
动态链接库(1)
动态链接库,DLL,Dynamic link library
动态链接库是一种程序模块,它不仅可以包含可执行代码,而且通常还包含各种类型的预定义的数据和资源。
使用动态链接库,只有程序在执行时才将库代码装入内存。
普通函数库,使用静态链接时,在程序链接时库中的代码被拷贝到执行文件中。
动态链接库(2)
C#中与非控代码互操作 CSharpDLL
VC中动态链接库的声明(自定义)
extern C BOOL _declspec(dllexport) dll_query (char* query_object,char* switchs);
VC中客户端对动态链接库的调用
extern C BOOL _declspec(dllexport) dll_query (char* query_object,char* switchs);
C#中客户端对动态链接库的调用
[DllImport(Find.dll,EntryPoint=dll_query)]
public static extern bool dll_query(string source,string queryItem,ref string str);
名字空间
namespace 关键字用于声明一个范围。此命名空间范围允许您组织代码并为您提供了创建全局唯一类型的方法。命名空间上不允许使用访问修饰符。命名空间没有访问限制。
namespace name[.name1] ...] { type-declarations } 此处name, name1 命名空间名可以是任何合法的标识符。命名空间名可以包含句号。
type-declarations 在一个命名空间中,可以声明一个或多个下列类型:
另一个命名空间
class
interface
struct
enum
delegate
名字空间举例
举例:Welcome WelcomeAPP
Welcome为库文件
WelcomeApp为执行文件
WelcomeApp通过引用实现对Welcome中类功能的调用
Using指令
using 指令有两个用途:
创建命名空间的别名(using 别名)。
允许在命名空间中使用类型,例如,不必限定该命名空间中的类型使用(using 指令)。
using [alias = ]class_or_namespace;
此处: alias(可选) 希望表示命名空间的用户定义符号。之后,您就可以使用 alias 表示命名空间名。
class_or_namespace 希望使用或为其提供别名的命名空间名,或希望为其提供别名的类名。
备注
创建 using 别名以便更易于将标识符限定到命名空间或类。
创建 using 指令,以便在命名空间中使用类型而不必指定命名空间。
Using指令举例
示例:UsingAlias显示了如何为命名空间定义和使用 using 别名
下面的示例显示了如何为类定义 using 指令和 using 别名: UsingAliasClass
.Net装配件
当使用.net编译器创建一个exe或dll文件时,这个文件不是通常意义的可执行文件,它由清单和MSIL代码组成,称为装配件。
清单列出了装配件中的类型和类。
MSIL可通过JIT编译器来编译和执行。
ILDASM:microsoft .net framework IL Disassembler,可以打开装配件并列举它的名称空间、类、类型以及代码。
.Net装配件- ILDASM
举例:用ILDASM打开Welcome.dll
Namespace:蓝色盾牌
Class:三个接头的蓝色矩形
方法:紫红色矩形
字段:青色菱形
事件:绿色向下三角形
属性:红色向上三角形
清单或类信息:红色向右三角形
Manifest(清单)可以察看对外部装配件的引用。举例: 察看WeclomeAPP.exe
文档评论(0)