[DllImport(XXXX)]
public static extern bool  SendSMS( string Phone, string Sms, int uPhoneLen, int uSmsLen);

解决方案 »

  1.   

    http://topic.csdn.net/t/20041205/11/3616246.html
      

  2.   

    hdt(倦怠) ( ) 信誉:120    Blog 
    ====================================
    你的方法我试过了,但发生下面错误!“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”
      

  3.   

    我的开发环境是 win2003 + sp1 + vs2005
      

  4.   

    两个问题
    bool WINAPI SendSMS(char *Phone, char *Sms, int uPhoneLen, int uSmsLen);
    1、phone sms 的编码有何要求 ,如果是Ansi,方法前加CharSet=CharSet.Ansi)]2、phone sms 是否为输出参数
      

  5.   

    两个问题
    bool WINAPI SendSMS(char *Phone, char *Sms, int uPhoneLen, int uSmsLen);
    1、phone sms 的编码有何要求 ,如果是Ansi,方法前加CharSet=CharSet.Ansi)]2、phone sms 是否为输出参数
    ========================================================================1、CharSet能选的编码我都试过了2、phone sms 是否为输出参数? 是输入的吧!如果是输出参数,我该如何调用?说明文档只有我上面贴出的那么多,没有详细说明了!
      

  6.   

    输出参数用参变量前加output关键字
      

  7.   

    发送短信,应该不是输出参数吧!用out我也试过了,还是出现“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”错误!
      

  8.   

    实在不行,我给你个笨方法
    phone , sms 改用System.IntPtr;
    调用
    string strphone = "XXXx";
    string strsms = "yyyyy";
    char[] phones = strphone.ToCharArray();
    char[] sms = strsms.ToCharArray();
    System.IntPtr p1 = Marshal.UnsafeAddrOfPinnedArrayElement( phones ,0);
    IntPtr p2 = Marshal.UnsafeAddrOfPinnedArrayElement( sms ,0);
    SendSMS( p1 , p2 , phones.length , sms.length );还有你如果用string的话
    phone ,sms 试试 加 ([MarshalAs(UnmanagedType.LPStr)]且用CharSet=CharSet.Ansi
    后面的两个长度小心,
      

  9.   

    下面这些参数在c#中要不要定义,要怎么定义?
    ==========================
    #define WM_NEW_MESSAGE      =   WM_USER + 1
    #define WM_NEW_BILL         =   WM_USER + 2
    #define WM_KEYPRESS         =   WM_USER + 3
    #define WM_CONNECTED        =   WM_USER + 4
    #define WM_CALLIN           =   WM_USER + 5
    #define WM_STARTTALK        =   WM_USER + 6
    #define WM_PIPEDATE         =   WM_USER + 7#define BILL_TYPE_CALLIN      =   0x0001
    #define BILL_TYPE_CALLOUT     =   0x0002
    #define BILL_TYPE_HELP        =   0x0003
      

  10.   

    要定义
    可以
    const int WM_NEW_MESSAGE=0x0401;
    const int WM_NEW_BILL = 0X402;
    或者用enum