none
请问什么地方有C#调用腾讯云通信的DEMO啊。 RRS feed

  • 问题

  • 请问什么地方有C#调用腾讯云通信的DEMO啊。
    公司要求使用腾迅云的云通信自己做聊天软件。
    现在的问题是腾迅云不提供C#的DEMO,发了工单,也投诉过,也加了他们的IM支持技术群。都很明确答复不提供C#的demo.
    然后,我在他们的论坛上上面翻到了一点使用的代码,但是使用代码后,直接就整个应用程序崩溃了。不知道什么原因。
    http://bbs.qcloud.com/thread-22228-1-1.html

    public delegate void CBOnSuccess(IntPtr data);
            public delegate void CBOnError(int code, string desc, IntPtr data);
    
            [StructLayout(LayoutKind.**ential)]  
            public struct TIMCommCB
            {
                public CBOnSuccess OnSuccess;
                public CBOnError OnError;
                public IntPtr data;
            }
            [StructLayout(LayoutKind.**ential)]  
            public struct TIMUserInfo 
            {
                public string account_type{get;set;} 
                public string app_id_at_3rd {get;set;} 
                public string identifier {get;set;}
                public string stiny_id { get; set; }
                public UInt64 tiny_id { get; set; }
            }
    
            [DllImport(@"libtim.dll")]
            public extern unsafe static void TIMSetMode(int mode);
            [DllImport(@"libtim.dll")]
            public extern unsafe static void TIMSetMessageCallBack(char* c);
            [DllImport(@"libtim.dll")]
            public extern unsafe static int TIMInit();
            [DllImport(@"libtim.dll",CallingConvention=CallingConvention.Cdecl)]
            extern unsafe static int TIMLogin(int sdk_app_id, ref TIMUserInfo tim_user, string user_sig, ref TIMCommCB callback);
            private unsafe void Form1_Load(object sender, EventArgs e)
            {
                int sdk_app_id = 1104620500;
                var result=TIMInit();
                TIMUserInfo user = new TIMUserInfo() ;
                user.account_type = "107";
                user.app_id_at_3rd = "1104620500";
                user.identifier = "c9_2";
                string user_sig = "123456";
    
                TIMCommCB callback=new TIMCommCB();
                callback.OnSuccess += callback_OnSuccess;
                callback.OnError += callback_OnError;
                var loginresult=TIMLogin(sdk_app_id, ref user, user_sig, ref callback);
            }
    
            void callback_OnError(int code, string desc, IntPtr data)
            {
                throw new NotImplementedException();
            }
    
            void callback_OnSuccess(IntPtr data)
            {
                MessageBox.Show(data.ToString());
            }

    上面是具体的代码,只要放入VS中执行,就会直接关掉程序。
    直接运行exe文件呢,则会提示

    ---------------------------
    Microsoft Visual C++ Debug Library
    ---------------------------
    Debug Error!

    Program: ...s\ConsoleApp1\WindowsFormsApp1\bin\Debug\WindowsFormsApp1.exe
    Module: ...ource\repos\ConsoleApp1\WindowsFormsApp1\bin\Debug\libtim.dll
    File: 

    Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call.  This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.



    (Press Retry to debug the application)
    ---------------------------
    中止(A)   重试(R)   忽略(I)   
    ---------------------------

    2018年3月26日 6:58

答案

  • 没有提供DEMO就不应该考虑实现。

    假设对方更换了API,你们的系统一点办法也没有,直接崩溃。辛苦劳累了大半年的成果,一点原因没有就跑不动了。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    • 已标记为答案 彭123 2018年4月25日 2:24
    2018年3月27日 0:28
  • Hi,

    感谢在MSDN论坛发帖。

    根据你的描述,这似乎不是C#语言开发出现的问题。

    我个人认为,使用腾讯云的接口,如果对方不提供这样的demo,说明他们业务不支持这块,后续出现问题,你们也很难找到技术支持。

    这样对你们公司产品,也会受到影响。

    Best Regards,

    Hart


    MSDN Community Support Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已标记为答案 彭123 2018年4月25日 2:24
    2018年3月28日 6:16
    版主

全部回复

  • 没有提供DEMO就不应该考虑实现。

    假设对方更换了API,你们的系统一点办法也没有,直接崩溃。辛苦劳累了大半年的成果,一点原因没有就跑不动了。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    • 已标记为答案 彭123 2018年4月25日 2:24
    2018年3月27日 0:28
  • Hi,

    感谢在MSDN论坛发帖。

    根据你的描述,这似乎不是C#语言开发出现的问题。

    我个人认为,使用腾讯云的接口,如果对方不提供这样的demo,说明他们业务不支持这块,后续出现问题,你们也很难找到技术支持。

    这样对你们公司产品,也会受到影响。

    Best Regards,

    Hart


    MSDN Community Support Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已标记为答案 彭123 2018年4月25日 2:24
    2018年3月28日 6:16
    版主