none
VS2005 WinCE6.0空工程中添加MFC库的问题 RRS feed

  • 问题

  • 大家好,我在WINCE的一个子工程中 的CPP文件需要用到CWindowDC这个类,于是在文件一开始就添加afxwin.h这个头文件,并且这个文件是在VC的inClude文件夹中的。 但是编译却说 no such file or directory,我在工程的配置属性中选择了“在共享DLL中使用MFC”这一选项。请问各位这是为什么呀。下面是关键程序:

    #include <afxwin.h>
    #include "pwinuser.h"
    #include "xamlruntime.h"
    #include "xrdelegate.h"
    #include "xrptr.h"
    #include "test.h"
    #include "resource.h"
    #include "initguid.h"
    #include "imaging.h"
    #pragma comment (lib,"Ole32.lib")

    //读入图片文件 返回HBITMAP位图句柄
    HBITMAP LoadImageFromFile(TCHAR * pFileImage)
    {
    IImagingFactory *pImgFactory = NULL;
    IImage *pImageBmp = NULL;
    CoInitializeEx(NULL, COINIT_MULTITHREADED);

    HBITMAP hResult = 0;

    if (SUCCEEDED(CoCreateInstance (CLSID_ImagingFactory, NULL,CLSCTX_INPROC_SERVER, IID_IImagingFactory, (void **)&pImgFactory)))
    {
    ImageInfo stImageInfo;
    HRESULT hr = pImgFactory->CreateImageFromFile(pFileImage, &pImageBmp);
    if (SUCCEEDED(hr)&& SUCCEEDED(pImageBmp->GetImageInfo(&stImageInfo)))
    {
    CWindowDC dc(0);
    CDC dcBitmap;
    dcBitmap.CreateCompatibleDC(&dc);
    hResult=CreateCompatibleBitmap(dc.GetSafeHdc(),stImageInfo.Width, stImageInfo.Height);
    HGDIOBJ hOldBitmap=SelectObject(dcBitmap, hResult);
    //note:内存不足的话,Draw操作可能会失败
    pImageBmp->Draw(dcBitmap,CRect(0,0,stImageInfo.Width,stImageInfo.Height),NULL); 
    SelectObject(dcBitmap, hOldBitmap);
    DeleteDC(dcBitmap);
    pImageBmp->Release();
    }
    pImgFactory->Release();
    }
    CoUninitialize();
    return hResult;
    }
    我不解的是 我在C++目录中应该选择哪个平台?我在Win32和PlatformBuilder(_TGTCPU)的包含文件都已经设置了D:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\include这个文件夹,而且右键afxwin.h是可以连接到这个文件的,大家知不知这是为什么呢?
    2011年3月18日 2:57

答案

全部回复

  • 我都改Sources文件包含这个目录了,可是还是同样的问题 到底哪出了配置错误呢
    2011年3月18日 8:15
  • _COMMONPUBROOT=$(_PROJECTROOT)\cesysgen
    __PROJROOT=$(_PROJECTROOT)
    RELEASETYPE=LOCAL
    _ISVINCPATH=$(_WINCEROOT)\public\common\sdk\inc;
    _OEMINCPATH=$(_WINCEROOT)\public\common\oak\inc;$(_WINCEROOT)\public\common
    
    \sdk\inc;
    TARGETNAME=NEO_test
    FILE_VIEW_ROOT_FOLDER= \
      ReadMe.txt \
      prelink.bat \
      postlink.bat \
    
    FILE_VIEW_RESOURCE_FOLDER= \
    
    FILE_VIEW_INCLUDES_FOLDER= \
      NEO_test.h \
    
    SOURCES= \
      NEO_test.cpp \
      NEO_test.rc \
    
    TARGETLIBS= \
      $(_PROJECTROOT)\cesysgen\sdk\lib\$(_CPUINDPATH)\coredll.lib \
      $(_PROJECTROOT)\cesysgen\sdk\lib\$(_CPUINDPATH)\xamlruntime.lib \
      $(_PROJECTROOT)\cesysgen\sdk\lib\$(_CPUINDPATH)\uuid.lib \
      $(_PROJECTROOT)\cesysgen\sdk\lib\$(_CPUINDPATH)\ole32.lib \
      $(_PROJECTROOT)\cesysgen\sdk\lib\$(_CPUINDPATH)\strmiids.lib \
      $(_PROJECTROOT)\cesysgen\sdk\lib\$(_CPUINDPATH)\strmbase.lib \
      $(VCInstallDir)\ce\atlmfc\lib\x86
    
    TARGETTYPE=PROGRAM
    POSTLINK_PASS_CMD=postlink.bat
    PRELINK_PASS_CMD=prelink.bat
    FILE_VIEW_PARAMETER_FOLDER= \
      NEO_test.bib \
      NEO_test.reg \
      NEO_test.dat \
      NEO_test.db \
      ProjSysgen.bat \
    
    INCLUDES=$(_OEMINCPATH)
    INCLUDES=$(INCLUDES);$(_PROJECTROOT)\cesysgen\sdk\inc
    INCLUDES=$(INCLUDES);$(_PROJECTROOT)\cesysgen\oak\inc
    INCLUDES=$(INCLUDES);$(VCInstallDir)\ce\atlmfc\include

    2011年3月18日 8:16
  • 我知道改sources文件为什么没用了,但是还是不明白怎么做才对,我新建了N遍工程,VC++目录是这样包含的

    包含文件:

    $(VCInstallDir)ce\atlmfc\include

    $(VCInstallDir)ce\include

    $(VCInstallDir)atlmfc\include

    库文件:

    $(VCInstallDir)ce\atlmfc\lib\x86

    $(VCInstallDir)ce\lib\x86

    错误是:

    错误    1    fatal error C1083: Cannot open include file: 'afxwin.h': No such file or directory    E:\WINCE600\OSDesigns\Compact\Compact\NEO_test\.\NEO_test.cpp    3   

    2011年3月18日 8:49
  • 你将头文件afxwin.h拷贝过去看看有没有问题,

    可能是安装Wince时没有导出目录,你可以在directory中includes一下相应的目录

    2011年3月21日 3:26