由于环境问题,通常win32和mfc混用是一个比较麻烦的事情,但是往往这种情况又不得不去面对,在win32中使用mfc,需要加载头文件,通常又会出现“windows.h”重包含,“class类型重定义”等等一些列问题,这些问题只要花点时间都容易解决,我想请教各位大虾的是:
我在win32中使用了一个mfc类,如下:
class CTimeProgressCtrl : public CProgressCtrl
{
   ...
   ...
};
在xxx.cpp中定义:
CTimeProgressCtrl m_TimeProgress;但是在调用方法的时候出现错误:
m_TimeProgress.create(...);
m_TimeProgress.movewindow(...);
m_TimeProgress.showwindow(...);编译都能通过,但是在执行的时候回出现系统提示:
Debug Assertion Failed
program:E:\...\...\...\xxx.exe
File:f:\...\...\afxwin1.inl
Line:23
...
...
反正就是涉及到mfc调用的地方就会出现上面的情况...
各位大大看看是怎么回事,谢谢指教了!!

解决方案 »

  1.   

    MFC中没有特殊情况是不需要直接调用API的而实际上,MFC的封装,使得你也可以直接调用API,不需要自己include <windows.h>
      

  2.   

    m_TimeProgress.create(...);
    m_TimeProgress.movewindow(...);
    create完后,立刻移动窗口?try to trace into MFC code!m_TimeProgress.create(...);
    m_TimeProgress.showwindow(...);
    m_TimeProgress.movewindow(...);
      

  3.   

    Debug Assertion Failed是不是什么东西没初始化之类的?
      

  4.   

    恩,WingForce(初六,履霜,坚冰至。)大大  说的我知道,但是需要mfc头文件<Afxxxx.h>,不然会找不到类型,倒是不用自己include<windows.h>
    但是加载mfc头文件<Afxxxx.h>的时候要放在<windows.h>之前
    既〈afxxxx.h〉
       ......
       〈windows.h〉yjgx007(还不结帖?!听妈妈的话! http://www.geekclaw.com)大大  误会我的意思了
    我只是举例说调用mfc中的方法都会出错,恩,
    mfc都是封装好了的,我追踪进mfc出现的错误是
    “xxx.exe 中的 0x005b3d3e 处未处理的异常: 用户断点 。”
    请指教小弟一下啊.....
      

  5.   

    xyxfly(小虾米 (本命年Happy, Day Day Up!))大大  说的我也有想过
    可能是句柄没有初始化导致创建的时候异常
    但是我相关的句柄都是初始化为空的
      

  6.   

    在MFC中使用API,没有什么问题啊.
    是不是 create 没有成功 ?
      

  7.   

    你可以在MFC中使用API
    但你不可以在SDK中增加几个#include就使用MFC
    因为使用MFC还需要额外的库和初始化MFC环境.这就是为什么MFC都是从theApp.Instance()开始执行,
    而不是让你在WinMain()中填写代码.
      

  8.   

    iicup(双杯献酒)大大 说的我没有去深入研究,
    网上有些gg说可以在win32中用mfc类
    因为mfc写起来比较简便一些,然后我就封装了一个类
    写好后准备在win32里用就出现了上面的问题
      

  9.   

    使用MFC的窗口类有点特殊,因为要找C...App的句柄,有个函数忘了,找找。
      

  10.   

    呵呵,这个是win32和mfc环境的问题,也没办法,我换个方法绕过去了
    好了,这里谢谢各位大大。