MFC中是这么定义的
EXPORT BYTE HD_DecodeSMS(PSTR pSrc, DWORD dwSrcSize, PSTR pDstBuf,
PSTR pDstMsg, PSTR pDstPhone);
char szDataBuf[1024] = "", sztMsgBuf[1024] = "", szPhoneBuf[20] = "";
memset(szDataBuf, 0, 1024);
memset(sztMsgBuf, 0, 1024);
memset(szPhoneBuf, 0, 20);
BYTE bMsg = 0;
bMsg = HD_DecodeSMS((PSTR)wParam, lParam, szDataBuf, sztMsgBuf, szPhoneBuf);那么如果我要在C#中使用的话该如何定义呢?m是widnows消息(System.Windows.Forms.Message m)
public static extern byte HD_DecodeSMS(IntPtr pSrc, IntPtr dwSrcSize, char[] pDstBuf,
char[] pDstMsg, char[] pDstPhone);
char[] c1 = new char[1024];
char[] c2 = new char[1024];
char[] c3 = new char[20]; //解码
byte b = HD_DecodeSMS(m.WParam, m.LParam, c1, c2, c3);
我这么写似乎无效,实例代码是MFC的,它那么写就能够得到正确的内容,我的C#无法得到,除了char[], string我也试过,不行。谢谢了
EXPORT BYTE HD_DecodeSMS(PSTR pSrc, DWORD dwSrcSize, PSTR pDstBuf,
PSTR pDstMsg, PSTR pDstPhone);
char szDataBuf[1024] = "", sztMsgBuf[1024] = "", szPhoneBuf[20] = "";
memset(szDataBuf, 0, 1024);
memset(sztMsgBuf, 0, 1024);
memset(szPhoneBuf, 0, 20);
BYTE bMsg = 0;
bMsg = HD_DecodeSMS((PSTR)wParam, lParam, szDataBuf, sztMsgBuf, szPhoneBuf);那么如果我要在C#中使用的话该如何定义呢?m是widnows消息(System.Windows.Forms.Message m)
public static extern byte HD_DecodeSMS(IntPtr pSrc, IntPtr dwSrcSize, char[] pDstBuf,
char[] pDstMsg, char[] pDstPhone);
char[] c1 = new char[1024];
char[] c2 = new char[1024];
char[] c3 = new char[20]; //解码
byte b = HD_DecodeSMS(m.WParam, m.LParam, c1, c2, c3);
我这么写似乎无效,实例代码是MFC的,它那么写就能够得到正确的内容,我的C#无法得到,除了char[], string我也试过,不行。谢谢了
解决方案 »
- magaView.HasMonth = db.Library.GroupBy(a => a.TimeBook.Month).Select(a => a.Key)
- 实现c# 添加集合编辑器的上下按钮功能
- 求数据库连接字符串的标准格式
- MediaTransmit.dll 怎么注册到C#中
- DataGrid自己绑定,如何针对某一列控制该列的style?
- 问个关于xml遍历的问题
- 关于日历的一些问题
- 怎么检查某日期是星期天?急,解决了即送分!!!!
- 关于C#中的一些疑惑问题求救
- 把一个日期值插入Sql Server 数据库时,这个日期值如何构造?在线求助
- oracle中的long型读取是出错 请高手帮忙,分不够可以再加
- 请问c#想实现导出EXCEL功能添加应用时,提示我没有找到。
这是个短消息解码的函数
都是PSTR而不是PCSTR,pDst(Destination),这些都暗示着是传出字符串。调用前记得先分配足够多的空间。{
StringBuilder dstBuf = new StringBuilder(1024);
StringBuilder dstMsg = new StringBuilder(1024);
StringBuilder dstPhone = new StringBuilder(1024); HD_DecodeSMS(pSrc, dwSrcSize, dstBuf, dstMsg, dstPhone);
}// PSTR src(Source)可能是传入的,你先试着用string。最好能有文档说明那些是传入参数,哪些是传出的,谁负责释放内存,缓冲区要多大等等。[DllImport(...)]
public static extern byte HD_DecodeSMS(string src, int dwSrcSize, StringBuilder pDstBuf, StringBuilder pDstMsg, StringBuilder pDstPhone);