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);
   
}GetBuffer在C#是如何表达?感谢

解决方案 »

  1.   

    一般来说,没有必要 care 什么 c++ 代码。你应该用c#根据需求来重写这种“三脚猫”的几行代码,不用再去纠结什么c++代码。
      

  2.   

    同意sp1234的观点,之所以C++使用GetBuffer,是因为便于在对象生存周期结束的时候释放内存的需要。这本身对于托管程序来说是不需要的。字符串完全可以放在托管堆上,让CLR去管理。
      

  3.   

    不同意sp1234的观点,小妹很明显是c#新手,既然人家要解决方法,就应该直接把完整的功能代码发上去,例子见多了,自然也就会用了。
      

  4.   


    String strSend ="XXXXXBBBBBBBBBBBBBBBBBB";
    byte[] buffer=Encoding.GetEncoding("utf-8").GetBytes(strSend );
      

  5.   

    有些 C++ 里面的繁琐代码,比如 copy string 之类的,在 C# 里面一句话就搞定了。主要是 SSL_writego 之类的方法,如果可以重写成 C# 就重写,不能的话,就得用 C# 的 API 去引用 C++ 的这些方法。