EVC下
CString m_strFileMap;
LPSTR lpData;  
lpData=(LPSTR)MapViewOfFile(hMapping,FILE_MAP_ALL_ACCESS,0,0,0);  
sprintf(lpData,m_strFileMap);  
出现如下错误,请高手指导下?
cannot convert parameter 2 from 'class CString' to 'const char *'

解决方案 »

  1.   

    sprintf(lpData,m_strFileMap); 
    改为
    _tcscpy(lpData,m_strFileMap.GetBuffer());
      

  2.   

    不能将CString对象转换成const char字符串
    试试 lpData=strFileMap.GetBuffer(0)
    用完释放 strFileMap.ReleaseBuffer()
      

  3.   

    sprintf(lpData,m_strFileMap);   
    --------------------------
    你这个是干什么?格式化lpData???
      

  4.   

    error C2660: 'GetBuffer' : function does not take 0 parameters
    E:\EVC\ProcessSend\ProcessSendDlg.cpp(112) : 
    error C2664: 'wcscpy' : cannot convert parameter 1 from 'char *' to 'unsigned short *'
    出现两个错误
           
      

  5.   

    lpData=(LPSTR)MapViewOfFile(hMapping,FILE_MAP_ALL_ACCESS,0,0,0);   
        if(lpData==NULL)   
        {   
            MessageBox(_T("MapViewOfFile() failed."));
            return;
        }
        // 给这段映像内存写数据.
        sprintf(lpData,m_strFileMap);  
      

  6.   

    error C2440: '=' : cannot convert from 'unsigned short *' to 'char *'
      

  7.   

    还是宽字符与窄字符的问题,使用Unicode版本的_stprintf()函数,具体看看MSDN
      

  8.   

    你用UNICODE编码
    就要用UNICODE的一些函数
    现在的一些函数都有两套,
    一套是ansi的一套是UNICODE的
    虽然ansi最后也是调用UNICODE的
    但是为了兼容性,没办法,弄了两套
    建议用UNICODE编码
      

  9.   

    是这样的,我是将VC的程序移植到EVC下,在VC下可以运行,但在EVC下有些函数不能使用,是说VC是ANSI编码,EVC是UNICODE编码。