成人免费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-08-10 14:43:03

C#函數Convert

2009-07-31 16:00:30

C#函數重載

2009-07-31 14:03:21

C# Format函數

2009-08-13 18:36:36

C#繼承構造函數

2009-08-19 17:38:17

C# 操作符分類

2009-08-24 15:02:05

C# 類型

2009-08-18 10:30:30

C#枚舉

2009-08-19 16:40:35

C#回調

2009-08-28 11:48:32

C#靜態函數

2009-07-31 15:22:56

C#判等函數

2009-08-17 17:49:20

C# 枚舉

2009-08-27 14:12:02

C# interfac

2009-07-31 15:44:02

C#靜態構造函數

2009-08-14 09:15:28

C#調用構造函數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色综合久| 91视频免费视频 | 久久av网站| 国产欧美日韩在线 | 亚洲欧美日韩成人在线 | 成人免费观看男女羞羞视频 | 在线观看第一页 | 国产精品揄拍一区二区 | 国产精品久久 | 毛片一区二区三区 | 亚洲视频在线观看一区二区三区 | 欧产日产国产精品国产 | 欧美精品一区二区三区在线播放 | 九色网址| 少妇一区在线观看 | 欧美日韩一区二区三区视频 | 男人天堂av网站 | 精品亚洲一区二区三区 | 精品丝袜在线 | 亚洲精品国产精品国自产在线 | 色欧美片视频在线观看 | 欧亚av在线 | 99综合网 | 成人午夜电影在线观看 | 免费观看黄网站 | 一级毛片免费视频 | 在线免费观看成年人视频 | 免费性视频 | 91免费在线 | 亚洲少妇综合网 | 亚洲综合一区二区三区 | av免费网站在线观看 | 国产欧美在线一区二区 | 日韩av最新网址 | 91一区 | 超碰在线97国产 | 久久69精品久久久久久久电影好 | 亚洲一区二区三区在线 | 日日骚网| 日本在线视频一区二区 | 成人精品在线视频 |