none
C++ MFC 字元轉換問題(win mobile) RRS feed

  • 問題

  • 我是使用VS2008,Windows Mobile 6平台,使用opencv函式,目前程式如下:
    void on_mouseClick2(int event, int x, int y, int flags, void* param)
    {
    CString dosya = L"SampleHUE.jpg";
    switch(event)
        {
      case CV_EVENT_LBUTTONDOWN:
    point11.x = x;
    point11.y = y;
    break;
     
    case CV_EVENT_LBUTTONUP:
    point22.x = x;
    point22.y = y;

    //cvRectangle(videoFrame, point11, point22, CV_RGB(255,0,0), 5);
    cvSetImageROI(videoFrame, cvRect (point11.x, point11.y, abs(point22.x-point11.x), abs(point22.y-point11.y)));
    cvSaveImage(dosya, videoFrame);
    cvResetImageROI(videoFrame);
    //cvShowImage("Define HUE", videoFrame);
    break;
    }
    }

    我使用unicode字元,在編譯時,會出現error C2664:'cvSaveImage':無法將參數1從'CString'轉換成'const char *' 的錯誤,
    嘗試使用過 GetBuffer函数 來強制轉換還是不行,想請問這各位該如何轉換呢?
    謝...
    2010年12月29日 下午 03:14

解答

  • 您可以善用CStringA類別:

    CString yourString = _T("字串");  //Unicode字串

    CStringA ansiString(yourString);  //轉成ANSI字串

    YourFunction(ansiString);   //呼叫需要ANSI字串的函數

     

    • 已標示為解答 阿立仔 2010年12月30日 上午 02:59
    2010年12月30日 上午 02:08

所有回覆

  • 您可以善用CStringA類別:

    CString yourString = _T("字串");  //Unicode字串

    CStringA ansiString(yourString);  //轉成ANSI字串

    YourFunction(ansiString);   //呼叫需要ANSI字串的函數

     

    • 已標示為解答 阿立仔 2010年12月30日 上午 02:59
    2010年12月30日 上午 02:08
  • 您可以善用CStringA類別:

    CString yourString = _T("字串");  //Unicode字串

    CStringA ansiString(yourString);  //轉成ANSI字串

    YourFunction(ansiString);   //呼叫需要ANSI字串的函數

     

    感謝 tihs 大大

    已經成功解決了,感謝讓我學習又學會了!!

    讚!

    2010年12月30日 上午 03:00