日期:2014-05-18  浏览次数:20888 次

DLL回调函数如何写?MAS短信的DLL
移动公司给了我一个DLL的接口,其中包含发短信和接收短信,代码如下:
C# code

 [DllImport("smsdll.dll",
             EntryPoint = "App_Submit",
             CharSet = CharSet.Ansi,//Unicode,
             CallingConvention = CallingConvention.Cdecl)]//Cdecl
             public static extern int App_Submit(string service_id, string dest_terminal_id, string src_id,string content);



接收短信
C# code


 [DllImport("smsdll.dll",
             EntryPoint = "App_Deliver",
             CharSet = CharSet.Ansi,
             CallingConvention = CallingConvention.StdCall)]
             unsafe public static extern int App_Deliver( StringBuilder Src_Id,  StringBuilder Dest_Id,  StringBuilder Msg_Content);
        



我如何写回调函数来获取接收短信?

我现在的解决方式是用了个 switch每隔1秒执行一次App_Deliver这个方法,显然这样做不好,
调用App_Deliver方法:
C# code

 StringBuilder srdid = new StringBuilder(50);
 StringBuilder destid = new StringBuilder(50);
 StringBuilder msgcontent = new StringBuilder(500);
   ret = App_Deliver(srdid, destid, msgcontent);
  if (ret > 0)
 {

 }
 else
 {   
  }
 


请问我如何写个回调函数来获取接收的短信?

------解决方案--------------------
要"那个DLL"提供了回调的功能才能做。

------解决方案--------------------
探讨
要"那个DLL"提供了回调的功能才能做。

------解决方案--------------------
“我如何写回调函数来获取接收短信?
我现在的解决方式是用了个 switch每隔1秒执行一次App_Deliver这个方法,显然这样做不好,”

建议采用线程实现你的需求!