我专门查了下,不知道LPCTSTA到底是啥东西?还是贴出你的代码来吧。

解决方案 »

  1.   

    是LPCTSTR吧。
    可以用
    USES_CONVERSION;T2A方法转换一下
      

  2.   

    嗯,就是想实现在mfc里用opencv打开图片,代码如下:
    BOOL Cfy2013ss1Doc::OnOpenDocument(LPCTSTR lpszPathName)
    {
    if (!CDocument::OnOpenDocument(lpszPathName))
    return FALSE; // TODO:  在此添加您专用的创建代码
    USES_CONVERSION;
    DWORD dwNum = WideCharToMultiByte(CP_OEMCP,NULL,T2CW(lpszPathName),-1,NULL,0,NULL,FALSE);  
    char *psText;  
    psText = new char[dwNum];  
    if(!psText)  
    {  
    delete []psText;  
    }  

    IplImage* img=cvLoadImage(psText);
    cvNamedWindow("example1",CV_WINDOW_AUTOSIZE);
    cvShowImage("example1",img);
    cvWaitKey(0);
    cvReleaseImage(&img);
    cvDestroyWindow("example1"); return TRUE;
    }
      

  3.   

    另外一楼不好意思是LPCTSTR 。。手误了二楼说的这个我也用过,还是出现dest错误在网上也搜不到,而且用vs2008不会出现错误,表示很困惑。
      

  4.   

    WideCharToMultiByte是干什么用的?就是给你转码用的,你只用来算字符数……然后你不是Unicode的编码,还去转Unicode干吗都不知道。
    直接IplImage* img=cvLoadImage(lpszPathName);
      

  5.   

    5楼,vs2010里lpszPathName是不能直接赋给这个函数的
      

  6.   

    高版本的VS 可以直接使用 CStringA CStringW
    BOOL Cfy2013ss1Doc::OnOpenDocument(LPCTSTR lpszPathName)
    {
    if (!CDocument::OnOpenDocument(lpszPathName))
    return FALSE;// TODO:  在此添加您专用的创建代码
    IplImage* img=cvLoadImage(CStringA(lpszPathName));
      

  7.   

    如果不能赋值,说明你是在Unicode下编译的,改成多字节编码即可。因为你根本没有给psText赋值。
      

  8.   

    网上找了基本上都木有解决问题,后来我搞了半天,还打了盘dota,我把include语句放在第一行就可以了。
    真是无语呀,真心不知道到底是什么问题,我还是太弱了。下面这样是可以的:
    #include "cv.h"
    // CVMFCDlg.cpp : 实现文件
    //
    #include "stdafx.h"
    #include "CVMFC.h"
    #include "CVMFCDlg.h"
    #include "afxdialogex.h"#ifdef _DEBUG
    #define new DEBUG_NEW
    #endif
    但是下面这样就不可以了:
    // CVMFCDlg.cpp : 实现文件
    //#include "stdafx.h"
    #include "CVMFC.h"
    #include "CVMFCDlg.h"
    #include "afxdialogex.h"#ifdef _DEBUG
    #define new DEBUG_NEW
    #endif
    #include "cv.h"
    事实发现在下面这段代码后面#include "cv.h"就是会出错,还真的不知道是为什么
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #endif
      

  9.   


    其实很简单,把opencv包含文件的那几行代码如#include "cv.h"放到
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #endif
    之前就行...