要求从EditControl编辑框中读取一Cstring类型变量,将其写入到内存映射文件,然后再将其读出显示
小弟各种方法都试了,读取数字类型字符串不会出问题,但是想要读取比如说“adasda”这种,写入文件映射是‘0’

解决方案 »

  1.   


    注意CString中的字符串的类型 与 编译 使用设置有关: wchar_t*  ( 设置为 UNICODE)时   , 或为 char *
      

  2.   

    hMMF 是一个地址指针, 它指向一段内存块
    正确的方法应该是用 memcpy 复制过去, 如果要省却内存复制, 那就直接用 hMMF 的内存    int len = GetDlgItem(1)->GetWindowTextLength();
        if (len > 0)
        {
            LPTSTR pszBuffer = (LPTSTR)hMMF;
            GetDlgItem(1)->GetWindowText(pszBuffer, len + 1);
        }
    首先你要保证 len 要小于 hMMF 指向内存的大小
      

  3.   

    strcpy_s((char*)hMMF, 10, "123");