我先在基于面板的工程Test.dsw中加了一个Definition.h,
在Definition.h 中我定义了一个……
typedef struct _ChannelInfo_
{
    CChStatus ChStatus ;        //通道状态
    char  StrChDTMF[100] ; //当前通道收到的DTMF码
    CChType ChType ;            //通道类型
    CString CurDoThing ;        //当前该通道正在做的动作
    CString NextDoThing ;       //当前该通道下一部要做的动作
    short UserToTrunk ;         //内线所对应的外线通道(人工转接)
    short TrunkToUser ;         //外线所对应的内线通道(人工转接)    
}CChannelInfo;然后我在TestDlg.h 里定义了(当然先#include "Definition.h")
CChannelInfo ChnInfo[255];
然后我运行一下,编译通过,但我的界面弹不出来了?!
我把定义行去掉,……//CChannelInfo ChnInfo[255];
我的界面就弹出来了,或者我 不定义 ChnInfo[255]那么多,
就 CChannelInfo ChnInfo[2];
界面也能弹出来。
是不是内容,或CPU堆栈什么容量有限?!?
不解,请指教!谢…………

解决方案 »

  1.   

    CChannelInfo ChnInfo[255];干吗的??
      

  2.   

    CChannelInfo ChnInfo[255];当然有用,我要定义通道参数
    通道很多的
      

  3.   

    从你的所说的来看,CChannelInfo ChnInfo[255]不是罪魁祸首,是另有凶手.不知道你所说的"面板"是什么,什么叫"界面弹出来"?
      

  4.   

    系统给我报出这样的错误提示:
    Debug Assertion Failed!
    …………
    File:dlgcore.cpp
    Line:………
    For information on how your program can cause an assertion
    failure,see the Visual C++ documentation on asserts.
    (Press Retry to debug the application)
    终止(A)   重试(R)   忽略(I)
    能给点意见吗?我该怎么办??
      

  5.   

    ////
    系统给我报出这样的错误提示:
    Debug Assertion Failed!
    …………
    File:dlgcore.cpp
    Line:………
    For information on how your program can cause an assertion
    failure,see the Visual C++ documentation on asserts.
    (Press Retry to debug the application)
    终止(A)   重试(R)   忽略(I)
    能给点意见吗?我该怎么办??
    ////这时候你按 重试 在debug模式下vc会自动停在assert error的那句话上
    然后就alt+7 来看call stack吧 一级一级的找 看看是哪个函数的哪一行导致了这个assert error
      

  6.   

    这是比较全的代码,在#include "Definition.h"里
    enum CChStatus
    {
    Idle, //空闲
    Busy, //忙
    SendFax, //发送传真
    RecFax //接收传真
    } ;enum CChType
    {
    DTCCh, //数字中继
    TrunkCh, //模拟外线
    UserCh, //模拟内线
    WatchCh, //模拟监控
    NoModule //无模块
    } ;
    typedef struct _ChannelInfo_
    {
        CChStatus ChStatus ;        //通道状态
        char  StrChDTMF[100] ; //当前通道收到的DTMF码
        CChType ChType ;            //通道类型
        CString CurDoThing ;        //当前该通道正在做的动作
        CString NextDoThing ;       //当前该通道下一部要做的动作
        short UserToTrunk ;         //内线所对应的外线通道(人工转接)
        short TrunkToUser ;         //外线所对应的内线通道(人工转接)    
    }CChannelInfo;
    在TestDlg.h 里
    #include "Definition.h"
    ……
    ……
    public:
       CChannelInfo chnInfo[255];
    编译无任何问题,但面板显示不出来,并出现ASSERT症状!
      

  7.   

    [email protected],把你的代码发给我看看吧,发了之后留条消息给我
      

  8.   

    试试用动态内存分配
    public:
      CCjannelInfo *chnInfo;.....
    chnInfo=new CCjannelInfo[255];从你的定义看,这个结构占用较多存储空间,像你这样分配的确有可能会出错的。
      

  9.   

    我试过了,无论debug版还是release版,都能正常运行,看见界面呀??!!!
      

  10.   

    续上面:
    其中改成了和你描述的一样CChannelInfo ChnInfo[255];
    也没有发现问题呀?!或者你通过菜单"Build"-Rebuild All一遍再试试看吧
      

  11.   

    拿代码来看,[email protected]
      

  12.   

    问题解决了 。
    是我程序其它地方有问题。
    不过我还是有点迷惑,比如我 定义 CChannelInfo ChnInfo[2];
    或者数组小点就好用,我糊涂。
    但问题总算过去了。多谢各位的帮助!马上散分!