我建如下类:
CMySheet : public CPropertySheet
{
DECLARE_DYNAMIC(CStairSheet)
public:
CStairSheet(CWnd* pWndParent = NULL);
CStatic myCStatic;
}在下面函数中:
int CMySheet ::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CPropertySheet::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
CRect rect;
GetClientRect(&rect);
CPoint pt1(138,rect.bottom - 22);
CPoint pt2(238,rect.bottom - 2);
CRect rect2(pt1,pt2);
myCStatic.Create("http://www.myweb.com",SS_CENTER|SS_SIMPLE|WS_VISIBLE,rect2,this); return 0;
}
m_myCStatic.Create此行在WIN2000系统运行正常。在win98系统出错。现在我只能判断一下操作系统,如果是98则不调用此行。
问题分析:如果在一个函数中声明 CStatic 并立刻调用Create()没有问题。如果在头文件中声明而在函数中调用create()则出错。初步判断与地址分配有关。请教:什么原因?有什么办法能让CStatic 在98下正常工作?
CMySheet : public CPropertySheet
{
DECLARE_DYNAMIC(CStairSheet)
public:
CStairSheet(CWnd* pWndParent = NULL);
CStatic myCStatic;
}在下面函数中:
int CMySheet ::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CPropertySheet::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
CRect rect;
GetClientRect(&rect);
CPoint pt1(138,rect.bottom - 22);
CPoint pt2(238,rect.bottom - 2);
CRect rect2(pt1,pt2);
myCStatic.Create("http://www.myweb.com",SS_CENTER|SS_SIMPLE|WS_VISIBLE,rect2,this); return 0;
}
m_myCStatic.Create此行在WIN2000系统运行正常。在win98系统出错。现在我只能判断一下操作系统,如果是98则不调用此行。
问题分析:如果在一个函数中声明 CStatic 并立刻调用Create()没有问题。如果在头文件中声明而在函数中调用create()则出错。初步判断与地址分配有关。请教:什么原因?有什么办法能让CStatic 在98下正常工作?
解决方案 »
- ANSI 编译环境下区分 WCHAR 数组元素是否是 WideChar 字符?
- 如何用c++编写视频分割程序
- hook api 异常问题
- 请问如何在VC++中自连已知路径的ACCESS数据库文件啊?
- 打开非模态对话框,请问这样的程序会内存泄漏吗?
- “只要UP就给分”,“散分”等,我们就跟,真的假的?有得到分的吗,跟我,我没分。大家来声讨吧
- 急!!!请各位大虾指点,送分100.
- 一个 Socket 不知道会接收多大的数据, 怎样调用 Receive ?
- 我的窗口怎么处理不了方向键消息?
- ★★★快来抢300分★★★:当我复制vcd里的dat影片时为何总提示i/o错误,如何拷贝到硬盘里?
- 如何用DLL处理文本文件?
- 拿到了进程的ProcessID和Handle,能取到这个进程的主窗口吗?请教!!
myCStatic.Create("http://www.myweb.com",WS_CHILD|SS_CENTER|SS_SIMPLE|WS_VISIBLE,rect2,this);
m_pStatic=NULL
使用的时候 m_pStatic=new CStatic析构函数
if(m_pStatic != NULL)
delete m_pStatic;
CRect(10,10,150,50), this);
此程序是在AutoCAD平台运行的ARX程序。ARX不允许多线程.
出错时报错详细信息:
ACAD 在 000b:000014c0 的模块
USER.EXE 中导致常规保护错误。
Registers:
EAX=000015c8 CS=1707 EIP=000014c0 EFLGS=00000202
EBX=00000000 SS=3ba7 ESP=0000841c EBP=00008496
ECX=00001500 DS=1647 ESI=0002d59c FS=3c9f
EDX=00000000 ES=48bf EDI=00000000 GS=0000
Bytes at CS:EIP:
8e c0 66 26 ff 36 3c 00 6a 01 9a 9e 09 97 16 eb
Stack dump:
fffbad39 3c9f0177 01770000 00012978 84700167 014f4afb 01671364 00003a98 00002978 00008470 00008458 00000000 00000000 00000000 15002978 00000000