C#调用非托管代码时参考(整理)

C#调用非托管代码时参考(整理)

ID:40525959

大小:74.29 KB

页数:35页

时间:2019-08-04

C#调用非托管代码时参考(整理)_第1页
C#调用非托管代码时参考(整理)_第2页
C#调用非托管代码时参考(整理)_第3页
C#调用非托管代码时参考(整理)_第4页
C#调用非托管代码时参考(整理)_第5页
资源描述:

《C#调用非托管代码时参考(整理)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.不返回值的参数C++原型:bool   SendNewSms(char*szTel,char*szMessage);C#引用;[DllImport("CdmaCard.dll",EntryPoint="SendNewSms")]public    static    extern   boolSendNewSms(stringphone,stringmsg);2.带返回值(char*)C++原型:BOOLGetCardErrorMessage(char*szErrorMessage,interror

2、Code);C#引用[DllImport("CdmaCard.dll",EntryPoint="GetCardErrorMessage")]    public    static    extern   intGetCardErrorMessage(StringBuildermsg,interrorCode);StringBuilderbuf=newStringBuilder(1024);//指定的Buf大小必须大于可能的最大长度      GetCardErrorMessage(buf,1);3.带

3、返回值(其他类型)C++原型:  BOOLGetSmsSaveStation(int*nSmsStation);C#引用  [DllImport("CdmaCard.dll",EntryPoint="GetSmsSaveStation")]   public   static   extern  boolGetSmsSaveStation(refintnStation);4.传递结构体指针(C++填充)C++原型:structNET_INFO_STRUCT{  DWORDnDurationTime;//

4、持续时间   doublenReceiveByte;//接收字节  doublenSendByte;  //发送字节};  BOOLNetGetConnectDetail(NET_INFO_STRUCT*lpNetInfo);C#引用  publicstructNET_INFO_STRUCT{  publicuintnDurationTime;//持续时间   publicdoublenReceiveByte;//接收字节  publicdoublenSendByte;  //发送字节}[DllImpo

5、rt("CdmaCard.dll",EntryPoint="NetGetConnectDetail")]        public   static   extern  intNetGetConnectDetail(refNET_INFO_STRUCTpNetInfo);                NET_INFO_STRUCTnetInfo=newNET_INFO_STRUCT();        NetGetConnectDetail(refnetInfo);         5.传递结构体数

6、组(C++来填充)C++原型:structUIM_BOOK_STRUCT{  intUimIndex;  charszName[15];  charszPhone[21];};intReadUimAllBook(UIM_BOOK_STRUCTlpUimBookItem[],intnMaxArraySize);C#引用[StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi)]//可以指定编码类型publicstructUIM_BOOK_STRUCT

7、{  publicintUimIndex;  [MarshalAs(UnmanagedType.ByValTStr,SizeConst=15)]  publicstringszName;  [MarshalAs(UnmanagedType.ByValTStr,SizeConst=21)]  publicstringszPhone;};[DllImport("CdmaCard.dll",EntryPoint="ReadUimAllBook")]public   static   extern  intRe

8、adUimAllBook([Out]UIM_BOOK_STRUCT[]lpUimBookItem,intnMaxArraySize);UIM_BOOK_STRUCT[]p=newUIM_BOOK_STRUCT[20];intret=ReadUimAllBook(p,p.Length);6.注意问题类型不一致,会导致调用失败,(1)long类型,在C++中是4字节的整数,在C#中是8字节的整数;(2)字符串类型的设置不正确; 以下是几个简单的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。