成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#回調函數及API應用淺析

開發 后端
本文演示了如何在C#里面調用VC6.0開發的C#回調函數的API應用,而且回調函數的參數包含結構體,使用C#的委托和IntPtr方法實現。

開發環境:WinXP Pro(SP2英文版) + VS.NET 2003中文版

接口庫版本: CMPP2.0 API第二版(V2.6)

該例程演示了如何在C#里面調用VC6.0開發的C#回調函數的API應用,而且回調函數的參數包含結構體,使用C#的委托和IntPtr方法實現。

由于我使用C#剛兩天,這是我寫的***個C#程序,因此例程寫的可能有點粗糙,但是編譯和運行完全沒有問題。

CMPP2.0的API應用封裝成了標準C調用的方法,提供以下三個接口,使用的時候只要有CMPPAPI.dll就可以了。


在C#里面如何調用API應用,如何聲明結構體,如何使用委托實現C#回調函數,如何實現使用自定義結構體作為參數的C#回調函數,請仔細查看例程源碼。注意:CMPPAPI.dll要和可執行文件放到同一個目錄下,或者放到可執行文件能找到的目錄,或者放到系統目錄下(如:C:\windows\system32)。

下面是C#下面的完整的調用代碼

  1. //Class1.cs  
  2.  
  3. using System;  
  4. // 該名稱空間包含了在Visual C#中調用API的一些必要集合  
  5. using System.Runtime.InteropServices;  
  6. // 使用Sleep方法需要的命名空間  
  7. using System.Threading;  
  8.  
  9. namespace CMPPAPI_Sample_CSharp  
  10. {  
  11.  
  12. [StructLayout(LayoutKind.Sequential, Pack = 1)]  
  13. public struct CMPP_HEAD  
  14. {  
  15. public uint nTotalLength;  
  16. public uint nCommandId;  
  17. public uint nSeqId;  
  18. }  
  19.  
  20. [StructLayout(LayoutKind.Sequential, Pack = 1)]  
  21. public struct CMPP_CONNECT  
  22. {  
  23. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 6)]  
  24. public string sSourceAddr;  
  25. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 16)]  
  26. public string sAuthSource;  
  27. public byte cVersion;  
  28. public uint nTimeStamp;  
  29. }  
  30.  
  31. [StructLayout(LayoutKind.Sequential, Pack = 1)]  
  32. public struct CMPP_CONNECT_RESP  
  33. {  
  34. public byte uchStatus;  
  35. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 16)]  
  36. public string sAuthISMG;  
  37. public byte cVersion;  
  38. }  
  39.  
  40. [StructLayout(LayoutKind.Sequential, Pack = 1)]  
  41. public struct CMPP_SUBMIT_RESP  
  42. {  
  43. public long nMsgid;  
  44. public byte uchResult;  
  45. }  
  46.  
  47. [StructLayout(LayoutKind.Sequential, Pack = 1)]  
  48. public struct CMPP_STATUS_REPORT  
  49. {  
  50. public long nMsgid;  
  51. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 7)]  
  52. public string sStat;  
  53. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 10)]  
  54. public string sSubmitTime;  
  55. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 10)]  
  56. public string sDoneTime;  
  57. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 21)]  
  58. public string sDestTerminalId;  
  59. public uint nSmscSeq;  
  60. }  
  61.  
  62. [StructLayout(LayoutKind.Sequential, Pack = 1)]  
  63. public struct CMPP_MO_MSGCONTENT  
  64. {  
  65. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 160)]  
  66. public string sMsgcontent;  
  67. public CMPP_STATUS_REPORT csr;  
  68. }  
  69.  
  70. [StructLayout(LayoutKind.Sequential, Pack = 1)]  
  71. public struct CMPP_DELIVER  
  72. {  
  73. public long nMsgid;  
  74. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 21)]  
  75. public string sDestid;  
  76. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 10)]  
  77. public string sServiceid;  
  78. public byte uchTppid;  
  79. public byte uchTpudhi;  
  80. public byte uchMsgfmt;  
  81. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 21)]  
  82. public string sSrcterminalid;  
  83. public byte uchRegisteredDelivery;  
  84. public byte uchMsglength;  
  85.  
  86. public CMPP_MO_MSGCONTENT mo_msg;  
  87.  
  88. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8)]  
  89. public string sReserved;  

【編輯推薦】

  1. C#在應用程序間發送消息實現淺析
  2. 一些C#時間類型的入門知識
  3. C#接口和抽象類技術特點淺析
  4. 一個C#時間計算的實例
  5. C#繼承知識詳解
責任編輯:佚名 來源: IT168
相關推薦

2009-08-12 10:11:18

C# 回調函數

2009-08-19 17:10:09

C#回調函數

2009-08-13 13:42:54

C#構造函數

2009-08-27 13:05:06

C#接口特點C#接口實例

2009-08-31 16:37:20

C#接口定義

2009-08-24 11:35:20

C# 泛型應用

2009-07-31 14:03:21

C# Format函數

2009-08-10 14:43:03

C#函數Convert

2009-07-31 16:00:30

C#函數重載

2009-08-13 18:36:36

C#繼承構造函數

2009-08-24 15:02:05

C# 類型

2009-08-19 17:38:17

C# 操作符分類

2009-08-18 10:30:30

C#枚舉

2009-08-28 11:48:32

C#靜態函數

2009-07-31 15:44:02

C#靜態構造函數

2009-08-14 09:15:28

C#調用構造函數

2009-07-31 15:22:56

C#判等函數

2009-08-18 10:35:46

C#枚舉類型

2009-08-07 08:53:52

C# ICloneab

2009-09-07 04:19:56

C#窗體事件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲一区国产精品 | 国产精品日韩一区 | 91网站视频在线观看 | av一级久久 | 欧美天堂 | www亚洲成人| 国产在线视频一区二区董小宛性色 | 日本久草视频 | 尤物视频在线免费观看 | 国产精品久久久乱弄 | 欧美极品在线观看 | 久久精品一| 亚洲高清视频在线观看 | 欧美精品在线免费 | 亚洲一区 | 亚洲欧美中文日韩在线 | 欧美一区二区三区国产 | 国产精品五区 | 欧美综合一区 | 91精品国产综合久久久久久 | 国产999精品久久久影片官网 | 国产成人高清视频 | 久久av一区二区三区 | 久久美女网 | 日本综合在线观看 | 91免费版在线 | 91精品国产乱码麻豆白嫩 | 国产精品成人免费 | av电影一区二区 | 伊人最新网址 | 精品视频一区二区三区在线观看 | 欧美日韩国产一区二区 | aaa级片 | 一区二区免费看 | 欧美日韩一区不卡 | 日韩欧美在线一区 | 成人高潮片免费视频欧美 | 国产美女特级嫩嫩嫩bbb片 | 亚洲精品在线国产 | 人人澡视频 | 国产在线精品一区二区 |