首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VC >

可否帮忙C++改成C# 呢。感谢

2014-04-22 
能否帮忙C++改成C# 呢。感谢希望把以下C++代码改成C#,非常感谢!CString strSend XXXXXBBBBBBBBBBBBBBBBBB

能否帮忙C++改成C# 呢。感谢
希望把以下C++代码改成C#,非常感谢!

CString strSend ="XXXXXBBBBBBBBBBBBBBBBBB";
int len=senddata(strSend.GetBuffer(strSend.GetLength()),strSend.GetLength());

int CVC6ClientDlg::senddata(char * buf,int num)
{
    char sendbuf[512];
memcpy(sendbuf,buf,num);
    sendbuf[num]='\n';
return SSL_writego(ssl, sendbuf, num+1);
   
}
[解决办法]



            String strSend = "XXXXXBBBBBBBBBBBBBBBBBB";
            byte[] byteSend = Encoding.UTF8.GetBytes(strSend);
            int len = senddata(byteSend, byteSend.Length);

        int senddata(byte[] buf, int num)
         {
            byte[] sendbuf = new byte[num+1];
            buf.CopyTo(sendbuf, 0);
            sendbuf[num] = (byte)'\n';
            return SSL_writego(ssl, sendbuf, num+1);
         } 



注意那句Encoding.UTF8.GetBytes()
接收端要用Encoding.UTF8.GetString()

也可能是别的编码格式,统一就好
[解决办法]
相当C++的char sendbuf[512];
的是
byte[] sendbuf = new byte[512];
不过这样写不好,若是senddata超过512,就越界了。
而我的写法
byte[] sendbuf = new byte[num+1];
则不会有问题。

热点排行