在C#程序设计中使用Win32类库

在C#程序设计中使用Win32类库


Author:dtqgfnet&;nbspFrom:Internet   C# 用户经常提出两个问题:“我为什么要另外编写代码来使用内置于 Windows 中的功能?在框架中为什么没有相应的内容可以为我完成这一任务?”当框架小组构建他们的 .NET 部分时,他们评估了为使 .NET 程序员可以使用 Win32 而需要完成的工作,结果发现 Win32 API 集非常庞大。他们没有足够的资源为所有 Win32 API 编写托管接口、加以测试并编写文档,因此只能优先处理最重要的部分。许多常用操作都有托管接口,但是还有许多完整的 Win32 部分没有托管接口。



   平台调用 (P/Invoke) 是完成这一任务的最常用方法。要使用 P/Invoke,您可以编写一个描述如何调用函数的原型,然后运行时将使用此信息进行调用。另一种方法是使用 Managed Extensions to C  来包装函数,这部分内容将在以后的专栏中介绍。



   要理解如何完成这一任务,最好的办法是通过示例。在某些示例中,我只给出了部分代码;完整的代码可以通过下载获得。



   简单示例



   在第一个示例中,我们将调用 Beep() API 来发出声音。首先,我需要为 Beep() 编写适当的定义。查看 MSDN 中的定义,我发现它具有以下原型:




 
        BOOL Beep(

        DWORD dwFreq,   // 声音频率

        DWORD dwDuration  // 声音持续时间

      );  (2005-7-21:10:04)

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [C#] 的这些文章也感兴趣:

C#简明教程(五)-数据类型  Mono为C#添加了类型推断支持
异步网络编程之图片批量抓取下载(C#)  C#版QQ机器人组件源码发布(带示例程序)
VisualStudio.Net内幕(2)  实例介绍C#GUI开发(2)
winform 用flash美化  如何保持datarow是DataRowState.Added
使用C#2.0进行文件压缩和解压  C#文章采集浅析
在WinForm程序中嵌入ASP.NET  CSharpTips:封装ActiveXControl时的StrongName
用VisualC#来清空回收站  编写随Windows启动运行的程序
用VisualC#打造个性化的IE浏览器  C#编写的多线程端口扫描程序!
用C#制作印章  HttpClient, 使用C#操作Web
VisualC#的剪切板编程  .NET开发