none
请教编译错误 RRS feed

  • 问题

  • E:\IMAhou\IMA\Source\DllOrOCX\PropList\answerButton.cpp(58) : error C2664: 'int __thiscall CString::Find(unsigned short) const' : cannot convert parameter 1 from 'char [2]' to 'unsigned short'
            This conversion requires a reinterpret_cast, a C-style cast or function-style cast 怎么改呢?谢谢下面是代码部分:

    CString answerButton::Convert2HttpFormat(CString filename)
    {
     CString strFileName = "file:///";

     int ind= filename.Find("\\");
     while (ind != -1)
     {
      strFileName += filename.Left(ind);
      strFileName += "//";
      //str += "\\";
      filename = filename.Right(filename.GetLength() - ind - 1);
      ind = filename.Find("\\");
     }
     strFileName += filename;
     return strFileName;  
    }

    2009年12月29日 6:44

答案

  • filename.Find("\\");
    改为:
    filename.Find('\\');

    字符和字符串的差别。其它地方照此办理。
    • 已标记为答案 anmy 2009年12月29日 8:41
    2009年12月29日 8:00
    版主

全部回复

  • 我编译了你的代码,代码没有问题....

    你clean 再rebuild 一下,试试看.再不行,就是你的工程DllOrOCX中的硬伤..

    2009年12月29日 7:41
  • 谢谢,我刚要说在proplist工程里编译没有错,现在rebuild all之后又出现
    Error: Could not delete file "E:\IMAhou\IMA\Source\DllOrOCX\PropList\PropList_i.h" : 拒绝访问。
    Error: Could not delete file "E:\IMAhou\IMA\Source\DllOrOCX\PropList\PropList_i.c" : 拒绝访问。

    2009年12月29日 7:58
  • filename.Find("\\");
    改为:
    filename.Find('\\');

    字符和字符串的差别。其它地方照此办理。
    • 已标记为答案 anmy 2009年12月29日 8:41
    2009年12月29日 8:00
    版主
  • 哦,谢谢您,但是出现
    idl : error MIDL2212 : error while writing to file .\PropList_i.c
    Error executing midl.exe.
    Error: Could not delete file "E:\IMAhou\IMA\Source\DllOrOCX\PropList\PropList_i.h" : 拒绝访问。
    Error: Could not delete file "E:\IMAhou\IMA\Source\DllOrOCX\PropList\PropList_i.c" : 拒绝访问。
    2009年12月29日 8:03
  • 把DllOrOCX 工程单独编译一下,看能否通过呢?
    2009年12月29日 8:46
    版主
  • 哦,谢谢您!
    2009年12月29日 9:13