精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

詳細介紹C#調用API

開發 后端
本文詳細介紹C#調用API,使用C#的委托和IntPtr方法實現.由于我使用C#剛兩天,這是我寫的第一個C#程序,因此例程寫的可能有點粗糙,但是編譯和運行完全沒有問題。

該例程演示了C#調用API函數,而且回調函數的參數包含結構體,使用C#的委托和IntPtr方法實現.由于我使用C#剛兩天,這是我寫的***個C#程序,因此例程寫的可能有點粗糙,但是編譯和運行完全沒有問題.CMPP2.0的API封裝成了標準C調用API的方法,提供以下三個接口,使用的時候只要有CMPPAPI.dll就可以了.

  1. #define DllExport extern "C" __declspec(dllexport)  
  2. DllExport int __stdcall Cmpp2Start(LPCTSTR pchSmgIp  
  3. int nMtPort  
  4. int nMoPort  
  5. LPCTSTR pchUserName  
  6. LPCTSTR pchUserPwd  
  7. unsigned char uchVersion  
  8. void (__stdcall *OnSmgMsg)(CMPP_SMGTOSP* css)  
  9. int nConnType  
  10. void (__stdcall *OnLogFile)(LPCTSTR str));  
  11.  
  12. DllExport int __stdcall Cmpp2Submit(  
  13. unsigned char uchPKtotal  
  14. unsigned char uchPKnumber  
  15. unsigned char uchNeedreport  
  16. unsigned char uchMsglevel  
  17. LPCTSTR pchServiceid  
  18. unsigned char uchFeeusertype  
  19. LPCTSTR pchFeeterminalid  
  20. unsigned char uchTppid  
  21. unsigned char uchTpudhi  
  22. unsigned char uchMsgfmt  
  23. LPCTSTR pchMsgsrc  
  24. LPCTSTR pchFeetype  
  25. LPCTSTR pchFeecode  
  26. LPCTSTR pchValidtime  
  27. LPCTSTR pchAttime  
  28. LPCTSTR pchSrcid  
  29. unsigned char uchDestusrtl  
  30. LPCTSTR pchDestterminalid  
  31. unsigned char uchMsglen  
  32. LPCTSTR pchMsgcontent);  
  33.  
  34. DllExport int __stdcall Cmpp2Release(); 

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

  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. publicstruct 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. publicstruct CMPP_SUBMIT_RESP  
  42. {  
  43. public long nMsgid;  
  44. public byte uchResult;  
  45. }  
  46.  
  47. [StructLayout(LayoutKind.Sequential, Pack = 1)]  
  48. publicstruct 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. publicstruct 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. publicstruct CMPP_DELIVER  
  72. {  
  73. public longnMsgid;  
  74. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 21)]  
  75. public string sDestid;  
  76. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 10)]  
  77. public string sServiceid;  
  78. public byteuchTppid;  
  79. public byteuchTpudhi;  
  80. public byteuchMsgfmt;  
  81. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 21)]  
  82. public string sSrcterminalid;  
  83. public byteuchRegisteredDelivery;  
  84. public byteuchMsglength;  
  85.  
  86. public CMPP_MO_MSGCONTENT mo_msg;  
  87.  
  88. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8)]  
  89. public string sReserved;  
  90. }  
  91.  
  92. [StructLayout(LayoutKind.Sequential, Pack = 1)]  
  93. publicstruct CMPP_SUBMIT  
  94. {  
  95. public longnMsgid;  
  96. public byteuchPkTotal;  
  97. public byteuchPkNumber;  
  98. public byteuchRegisteredDelivery;  
  99. public byteuchMsgLevel;  
  100. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 10)]  
  101. public string sServiceId;  
  102. public byteuchFeeUserType;  
  103. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 21)]  
  104. public string sFeeTerminalId;  
  105. public byteuchTpPid;  
  106. public byteuchTpUdhi;  
  107. public byteuchMsgFmt;  
  108. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 6)]  
  109. public string sMsgSrc;  
  110. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 2)]  
  111. public string sFeeType;  
  112. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 6)]  
  113. public string sFeeCode;  
  114. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 17)]  
  115. public string sValidTime;  
  116. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 17)]  
  117. public string sAtTime;  
  118. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 21)]  
  119. public string sSrcId;  
  120. public byte uchDstUsrTl;  
  121. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 21*100)]  
  122. public string sDstTerminalId;  
  123. public byteuchMsgLength;  
  124. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 160)]  
  125. public string sMsgContent;  
  126. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8)]  
  127. public string sReserved;  
  128. }  
  129.  
  130. [StructLayout(LayoutKind.Sequential, Pack = 1)]  
  131. publicstruct CMPP_QUERY  
  132. {  
  133. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8)]  
  134. public string sTime;  
  135. public byte uchQueryType;  
  136. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 10)]  
  137. public string sQueryCode;  
  138. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8)]  
  139. public string sReserved;  
  140. }  
  141.  
  142. [StructLayout(LayoutKind.Sequential, Pack = 1)]  
  143. publicstruct CMPP_QUERY_RESP  
  144. {  
  145. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8)]  
  146. public string sTime;  
  147. public byte uchQueryType;  
  148. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 10)]  
  149. public string sQueryCode;  
  150. public uint nMTTLMsg;//從SP接收消息總數.  
  151. public uint nMTTLUsr;//從SP接收用戶總數.  
  152. public uint nMTScs; //成功轉發數量.  
  153. public uint nMTWT; //待轉發數量.  
  154. public uint nMTFL; //轉發失敗數量.  
  155. public uint nMOScs; //向SP成功送達數量.  
  156. public uint nMOWT; //向SP待送達數量.  
  157. public uint nMOFL; //向SP送達失敗數量.  
  158. }  
  159.  
  160. [StructLayout(LayoutKind.Sequential, Pack = 1)]  
  161. publicstruct CMPP_CANCEL  
  162. {  
  163. public long nMsgid;  
  164. }  
  165.  
  166. [StructLayout(LayoutKind.Sequential, Pack = 1)]  
  167. publicstruct CMPP_CANCEL_RESP  
  168. {  
  169. public byte uchSuccessId;  
  170. }  
  171.  
  172. [StructLayout(LayoutKind.Sequential, Pack = 1)]  
  173. publicstruct CMPP_ACTIVETEST_RESP  
  174. {  
  175. public byte uchReserved;  
  176. }  
  177.  
  178. [StructLayout(LayoutKind.Sequential, Pack = 1)]  
  179. publicstruct CMPP_BODY  
  180. {  
  181. public CMPP_CONNECT_RESP pk_connectresp;  
  182. public CMPP_SUBMIT_RESPpk_submitresp;  
  183. public CMPP_QUERY_RESPpk_queryre  

以上介紹C#調用API

【編輯推薦】

  1. C#字符串進行分割
  2. 全面測試C#字符串
  3. C# out和ref傳遞數組
  4. 淺析C#定義整型數組
  5. C#數據庫連接字符串
責任編輯:佚名 來源: MSDN
相關推薦

2009-08-03 14:09:15

C#調用API

2009-08-10 16:30:56

C# BitmapDa

2009-08-12 15:34:40

C# DBNull

2009-08-03 18:49:17

C#和Java

2009-08-21 09:23:11

C# GDI+

2009-08-26 17:31:59

C# const常量

2009-08-24 18:21:23

C# ListView

2009-08-20 15:26:42

C#循環語句

2009-08-21 15:16:23

C#使用指針

2009-08-14 17:04:50

C#類型系統

2009-08-13 13:38:30

C#命名規范

2009-08-05 15:10:19

C#調用GoogleE

2009-07-31 16:12:10

Windows APIC#

2009-08-03 13:13:52

C#調用Outlook

2009-08-03 13:34:57

C#調用Windows

2009-08-20 12:29:46

C#調用PInvoke

2009-08-06 14:59:36

C#編譯器

2009-08-25 17:28:23

C#創建DataSet

2009-08-27 14:32:15

C#編寫ActiveX

2009-08-27 17:31:44

C#創建Windows
點贊
收藏

51CTO技術棧公眾號

亚洲国产精品黑人久久久| 免费视频一区二区三区在线观看| 7777精品伊人久久久大香线蕉超级流畅 | 国产一区二区三区无遮挡| 日韩黄色在线播放| 欧美gvvideo网站| 欧美精品一区二区三区高清aⅴ| 成人观看免费完整观看| 欧美日韩在线看片| 91免费版在线| 亚洲综合日韩在线| 男人天堂av在线播放| 在线成人超碰| 亚洲视频一区二区三区| 亚洲丝袜在线观看| 日本少妇一区| 欧美日韩国产精品专区| 最新av在线免费观看| 蜜桃免费在线| www.日本不卡| 51国偷自产一区二区三区 | 免费的av网站| 久久伊人影院| 欧美日韩国产综合一区二区三区| 日韩五码在线观看| 黄色免费在线观看| 亚洲国产精品成人综合色在线婷婷| 99久久精品免费看国产一区二区三区| 99re热视频| 性伦欧美刺激片在线观看| 九九久久综合网站| 国产三级aaa| 国产精品一线天粉嫩av| 亚洲а∨天堂久久精品9966| 一二三级黄色片| 韩国精品视频在线观看 | 欧美绝顶高潮抽搐喷水合集| 91精品在线一区二区| 韩国一区二区av| 日本乱码一区二区三区不卡| 亚洲图片欧美视频| 欧美日韩dvd| 91香蕉在线观看| 国产精品美女久久久久av爽李琼| 欧美污视频久久久| 色猫av在线| 91视频免费看| 久久综合福利| 免费在线国产| 久久精品视频在线免费观看| 久久久久久欧美精品色一二三四| 日本激情一区二区三区| 成人中文字幕在线| 亚洲最大福利网| 国产jzjzjz丝袜老师水多 | 精品国产av色一区二区深夜久久| 6080亚洲理论片在线观看| 91精品国产高清一区二区三区蜜臀| 色一情一区二区三区| 国产成人a视频高清在线观看| 91激情在线视频| 超碰在线97免费| 九九热这里有精品| 在线不卡一区二区| 一级黄色免费毛片| 成人激情自拍| 亚洲精品资源在线| 阿v天堂2014| 99国产**精品****| 久久成人免费视频| 精品少妇theporn| 国产日韩视频| 国产精品久久久久久久久久99| 国产精品无码一区| 极品尤物av久久免费看| 成人欧美一区二区| 五月天激情婷婷| 国产日韩精品视频一区| 在线观看成人av电影| 大片免费在线观看| 亚洲成人自拍网| 天天操天天爽天天射| 91成人在线网站| 亚洲福利视频在线| 日本少妇xxxxx| 一区二区国产在线| 97在线观看视频国产| 日本欧美www| 国产精品2024| 日韩女优中文字幕| 91在线中字| 日本黄色一区二区| 污免费在线观看| 蜜桃国内精品久久久久软件9| 色婷婷综合久久久久| 青娱乐国产在线视频| 麻豆精品91| 91精品黄色| 欧美美乳在线| 一区二区三区美女视频| 国产免费人做人爱午夜视频| www.欧美| 亚洲深夜福利网站| 精品少妇爆乳无码av无码专区| 天堂在线一区二区| 91久久偷偷做嫩草影院| 欧美777四色影视在线| 亚洲人成精品久久久久久| 日本精品一区在线观看| 日韩中文一区二区| 国产亚洲视频在线| 国产无码精品在线播放| 精品在线一区二区| 欧美久久在线| 大香伊人久久| 91精品国产高清一区二区三区蜜臀 | 黄色a级片免费看| 日韩城人网站| 亚洲日本aⅴ片在线观看香蕉| 久久黄色小视频| 老司机精品视频在线| 久久偷窥视频| 2019中文字幕在线电影免费| 51精品久久久久久久蜜臀| 亚洲精品国产91| 国产一区二区你懂的| 亚洲xxx大片| 九色porny在线| 欧美日韩亚洲丝袜制服| 国产黄片一区二区三区| 亚洲免费激情| 国产精品久久久久免费| 黄色网页网址在线免费| 欧美日韩电影一区| 久久国产柳州莫菁门| 午夜在线精品偷拍| 久久精品人成| av资源亚洲| 亚洲精品美女在线| 国产无码精品一区二区| 成人免费高清视频| 久久人人爽人人爽人人av| 国产视频网站一区二区三区| 日韩在线观看网站| 亚洲天天综合网| 欧美高清在线精品一区| 香蕉视频网站入口| 国产中文精品久高清在线不| 欧美在线视频播放| 日韩私人影院| 色婷婷一区二区| 日韩毛片无码永久免费看| 日韩综合小视频| 日韩电影大全在线观看| 深夜视频一区二区| 日韩中文字幕免费视频| 一级二级三级视频| 中文字幕在线视频一区| 免费在线观看污网站| 亚洲一区二区日韩| av噜噜色噜噜久久| 2019中文字幕在线电影免费| 日韩精品久久久久| 久久久黄色大片| 久久久精品免费免费| 天天爽天天爽夜夜爽| 日韩精品一区二区久久| 亚洲一区二区中文| 欧美性video| 亚洲国产日韩精品在线| 日本中文字幕在线| 国产精品无遮挡| 中文字幕第10页| 99综合视频| 亚洲欧洲日韩综合二区| 懂色av色香蕉一区二区蜜桃| 欧美大片免费看| 色就是色亚洲色图| 欧美乱妇15p| 在线看成人av| 欧美激情在线看| 巨乳女教师的诱惑| 国产农村妇女毛片精品久久莱园子 | 国产99在线|中文| 69久久久久| 精品国产一区久久| 欧美性受xxx黑人xyx性爽| 亚洲天堂av老司机| 久久久久麻豆v国产精华液好用吗| 肉色丝袜一区二区| 国产精品国三级国产av| 综合亚洲色图| 91黄色精品| 日韩一区二区三区免费| 欧美日韩xxx| 高清av电影在线观看| 日韩欧美综合在线| 亚洲中文一区二区| 亚洲专区一二三| 亚洲天堂av中文字幕| av成人老司机| 亚洲一二区在线观看| 亚洲中午字幕| 日本黄xxxxxxxxx100| 九色精品91| 成人3d动漫一区二区三区91| 精品久久在线| 青青草原一区二区| 手机av免费在线| 少妇高潮久久77777| 亚洲 国产 欧美 日韩| 91精选在线观看| 姑娘第5集在线观看免费好剧| 亚洲超碰精品一区二区| 91狠狠综合久久久| 久久久国际精品| 亚洲色偷偷色噜噜狠狠99网 | 亚洲乱妇老熟女爽到高潮的片 | 亚洲一区二区av在线| 正在播放国产对白害羞| 99riav久久精品riav| 欧洲成人午夜精品无码区久久| 麻豆成人免费电影| 国产视频一区二区视频| 9色精品在线| 欧美精品卡一卡二| 在线国产一区| 男女爱爱视频网站| 日韩在线不卡| 亚洲精品日韩精品| 欧美美女在线观看| 欧美日韩国产精品一卡| 啪啪激情综合网| 国产精品毛片va一区二区三区| 色狠狠一区二区三区| 国产精品久久久久久影视| av在线日韩| 国产精品久在线观看| 欧美色网在线| 国产精品极品美女在线观看免费 | 精品国产精品自拍| 日韩av男人天堂| 亚洲成人午夜影院| 国产一级在线视频| 亚洲国产综合91精品麻豆| 国产亚洲精品码| 五月天激情综合| 中文字幕亚洲精品一区| 欧美天天综合色影久久精品| 超碰中文字幕在线| 色综合天天综合色综合av| 久久久精品视频网站| 日本韩国一区二区| 国产又粗又猛又爽又| 欧美视频中文一区二区三区在线观看| 无码视频在线观看| 欧美日韩成人激情| 国产日韩欧美一区二区东京热| 日韩欧美的一区二区| 嫩草影院一区二区| 日韩精品福利网站| 国产对白叫床清晰在线播放| 中文字幕精品—区二区| 黄色网页在线免费观看| 久久久久国产一区二区三区| 草草视频在线| 国产精品久久久久77777| 欧美日韩卡一| 国产成人精品日本亚洲11| 老牛国内精品亚洲成av人片| 欧美日韩三区四区| 日本电影一区二区| 日韩精品一区二区三区电影| 伊人激情综合| 国产视频一区二区视频| 国产一区二区福利视频| 久久久久久久人妻无码中文字幕爆| 91丨九色丨蝌蚪丨老版| 欧美性生交大片| 午夜亚洲国产au精品一区二区 | 91麻豆精品91久久久久久清纯| 成人黄色在线观看视频| 精品无人区太爽高潮在线播放| h视频在线免费| 久久久久一本一区二区青青蜜月 | 在线播放日韩| 国产福利影院在线观看| 成人免费视频免费观看| 69xxx免费| 天天影视色香欲综合网老头| 在线观看一二三区| 亚洲第一网站男人都懂| 成人高清在线| 久久人91精品久久久久久不卡| 日韩av福利| 97免费资源站| av中字幕久久| 黄色一级片在线看| 青青草国产精品亚洲专区无| 白嫩情侣偷拍呻吟刺激| 亚洲欧洲日韩综合一区二区| 亚洲天堂av片| 日韩欧美国产一区二区在线播放| 欧美日韩国产综合视频| 欧美精品久久久久久久免费观看| 久久精品 人人爱| 免费精品视频一区二区三区| 欧美日韩国产免费观看| 欧美一级特黄a| 91丨porny丨国产入口| 麻豆疯狂做受xxxx高潮视频| 欧美在线不卡视频| 日韩在线视频第一页| 久久久国产精彩视频美女艺术照福利| 僵尸再翻生在线观看免费国语| 亚洲a一级视频| 色无极亚洲影院| 麻豆av免费在线| 972aa.com艺术欧美| 免费一级片在线观看| 欧美二区三区91| 成人av电影观看| 日本亚洲精品在线观看| 国产精东传媒成人av电影| 午夜久久久久久久久久久| 美女视频黄 久久| 91成人破解版| 影音先锋久久资源网| 日韩美女啊v在线免费观看| 久久久久久久麻豆| 色噜噜夜夜夜综合网| 无码国产伦一区二区三区视频 | 久草一区二区| 精品9999| 久久久久亚洲av成人网人人软件| 亚洲欧美日韩在线| 国产精品久久免费| 最新日韩中文字幕| 福利一区二区| 中文字幕精品一区日韩| 美女视频免费一区| 萌白酱视频在线| 欧美另类videos死尸| 麻豆视频在线播放| 91精品视频观看| 一区二区电影在线观看| 国产xxx在线观看| 亚洲图片欧美综合| 午夜视频福利在线观看| 4438全国亚洲精品在线观看视频| 亚洲人和日本人hd| 日本在线视频www| 国产校园另类小说区| 波多野结衣日韩| 中文字幕成人精品久久不卡| 农村妇女一区二区| 久久99国产精品一区| 国产成人高清在线| 黄网站免费在线| 亚洲精品美女久久| 最新日韩精品| 亚洲精品在线观看免费| 久久99精品久久久久| 天天干中文字幕| 亚洲精品suv精品一区二区| 伊人色综合一区二区三区影院视频 | 999精品网站| 中文字幕亚洲精品在线观看| 亚洲va久久久噜噜噜无码久久| 久久久久久久色| 国产真实有声精品录音| aaa一级黄色片| 夜夜嗨av一区二区三区网页| 国内爆初菊对白视频| 51午夜精品视频| 三上亚洲一区二区| 超碰91在线播放| 天天综合色天天| 毛片网站在线免费观看| 国产精品国产精品国产专区不卡| 国产欧美一级| 萌白酱视频在线| 亚洲国产成人精品一区二区| 三上悠亚亚洲一区| 在线观看免费黄色片| 99久久777色| 在线观看国产黄| 国模私拍视频一区| 国产日韩欧美一区二区三区| 中文字幕55页| 色综合av在线| 在线播放蜜桃麻豆| 欧美久久久久久| 国产98色在线|日韩| 欧美超碰在线观看| 欧美精品久久久久久久免费观看| 成人在线免费小视频| 久久国产劲爆∧v内射| 精品视频1区2区3区| 乱人伦视频在线|