首先推荐一本书《精通.NET 互操作》 ,这本书是目前中文资料里讲 互操作最详尽的书了。

  做系统集成项目的同学应该都和设备打过交道(如视频设备:海康、大华等),在大多数情况下这些设备厂商会给系统集成厂商开发协议(dll 类库、 函数定义的头文件、测试程序、调用流程),这些协议的dll 大都用C++开发的,那么我们用C#集成,就得用 P/Invoke 技术(.NET 互操作的一种)

 

一、P/Invoke 简单例子

  P/Invoke 说白了,就是你调用协议dll 的函数,传入正确的参数(注意C++与C#的数据类型转换)

  例子:

 1 using System.Runtime.InteropServices;
 2 
 3 class App
 4 {
 5     [DllImport("msvcrt.dll")]
 6     static extern int puts(string msg);
 7     
 8     [DllImport("msvcrt.dll")]
 9     static extern int _flushall();
10     
11     static void Main()
12     {
13         puts("Hello World");
14         _flushall();
15         CreateMsgWindow();
16     }
17     
18     
19     [DllImport("user32.dll",EntryPoint="MessageBox")]
20     static extern int MessageBox(int hwnd,string lpText,string lpCaption,int wType);
21         
22     static void CreateMsgWindow()
23     {
24         MessageBox(0,"Hello world!","Welcome",0);
25     }
26 }
View Code

相关文章: