1 、抛开windows开发使用的标准c/c++运行时库及windows商品化后包装的c/c++运行时库(邦到编译器里发布给用户使用)以及上层的mfc库等,我们且关注他提供的win32 api.及严格分类与扩展后的.net frame类库。
2、C#程序基于.net类库程序设计的时候同时也还是可以使用windows的api的。
3、win32 api以动态库dll的形式外加一些.h文件提供给用户使用。
4、基于windows的运用程序要想尽情表现,必须熟练使用其提供的接口。
5、C#在.net平台不但可以理所当然的使用framework类库还可以直接使用win32的API。
6、C# 使用 using System.Runtime.InteropServices; 运行时,交互服务,很容易想到,是支持 .net 平台使用dll的。
7、使用[DllImport("****.dll")] public static extern type func(); 之后就可以使用win32的函数了。
8、导入dll的最大问题是类型匹配,有如下对应关系:
9、LPCTSTR是Long Pointer to Constant String的缩写,就是——字符串。所以,用C#里的string类型了。
10、.NET Framework是对Win32 API的良好封装,大部分Win32 API函数都已经封装在了.NET Framework类库的各个类里了。
11、对类库的了解程度直接决定了你编程的效率和质量——用类库里的组件比我们“从轮子造起”要快得多、安全得多。
12、不到万不得已,不要去直接调Win32 API函数——那是不安全的。
win32 接口和.net framework类库的对应关系如下:
MSDN上
Microsoft Win32 to Microsoft .NET Framework API Map