Codejock Forums Homepage
Forum Home Forum Home > Codejock Products > Visual C++ MFC > Skin Framework
  New Posts New Posts RSS Feed - [solved] 13.3.0 CRITICAL bug!
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

[solved] 13.3.0 CRITICAL bug!

 Post Reply Post Reply
Author
Message
znakeeye View Drop Down
Senior Member
Senior Member
Avatar

Joined: 26 July 2006
Status: Offline
Points: 1672
Post Options Post Options   Thanks (0) Thanks(0)   Quote znakeeye Quote  Post ReplyReply Direct Link To This Post Topic: [solved] 13.3.0 CRITICAL bug!
    Posted: 02 March 2010 at 5:27pm
Windows 7 x64, VS 2008 SP1, XTP 13.3.0 statically linked. Skin active.
 
Pressed F1 in my application to view help. Then quit without closing the help. BOOM! (It seems to crash on different locations between the runs.)
 
  user32.dll!76ee3610()  
  [Frames below may be incorrect and/or missing, no symbols loaded for user32.dll] 
  user32.dll!76ee3610()  
  hhctrl.ocx!719bfea4()  
  hhctrl.ocx!719ce7f9()  
  hhctrl.ocx!719ced01()  
  user32.dll!76ed6238()  
  user32.dll!76ed68ea()  
  user32.dll!76ed6899()  
  user32.dll!76ed723b()  
  user32.dll!76ed6ea9()  
  user32.dll!76ed6ea9()  
  hhctrl.ocx!719cecd6()  
  user32.dll!76ed6238()  
  user32.dll!76ed6238()  
  user32.dll!76ed68ea()  
  user32.dll!76ed6899()  
  user32.dll!76ed7177()  
  user32.dll!76ed6ea9()  
  user32.dll!76eda484()  
  user32.dll!76eda4dd()  
  user32.dll!76eda4dd()  
  hhctrl.ocx!719d0acd()  
  hhctrl.ocx!719837e8()  
  msctf.dll!75be41b5()  
  user32.dll!76ed6238()  
  user32.dll!76ed6941()  
  user32.dll!76edcd1a()  
  user32.dll!76edcd81()  
  user32.dll!76edd6d1()  
  user32.dll!76ee316a()  
  user32.dll!76ed9b10()  
  user32.dll!76f04595()  
  user32.dll!76edd382()  
  user32.dll!76ed6ea9()  
  user32.dll!76ed6ec0()  
> Application.exe!CMap<HWND__ *,HWND__ *,CXTPSkinObject *,CXTPSkinObject *>::GetAssocAt(HWND__ * key=0xcccccccc, unsigned int & nHashBucket=, unsigned int & nHashValue=)  Line 1542 + 0x9 bytes C++
  cccccccc() 
  user32.dll!76ee0243()  
  user32.dll!76efeec0()  
  hhctrl.ocx!7199469e()  
  hhctrl.ocx!7199bb19()  
  Application.exe!CXTPSkinManagerApiHook::ThreadProcHook(void * lpThreadData=0x04af3f80)  Line 1052 + 0x9 bytes C++
  kernel32.dll!75753677()  
  ntdll.dll!776a9d72()  
  ntdll.dll!776a9d45()  
PokerMemento - http://www.pokermemento.com/
Back to Top
Oleg View Drop Down
Admin Group
Admin Group


Joined: 21 May 2003
Location: United States
Status: Offline
Points: 11234
Post Options Post Options   Thanks (0) Thanks(0)   Quote Oleg Quote  Post ReplyReply Direct Link To This Post Posted: 03 March 2010 at 2:00am
Hi,
 
Sorry, can't reproduce it.
 
Maybe try manually Close it with something like
 

HWND WINAPI AfxHtmlHelp(HWND hWnd, LPCTSTR szHelpFilePath, UINT nCmd, DWORD_PTR dwData);

void CMainFrame::OnDestroy()

{

CXTPMDIFrameWnd::OnDestroy();

AfxHtmlHelp(0, 0, HH_CLOSE_ALL, 0);

}

Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS
Back to Top
znakeeye View Drop Down
Senior Member
Senior Member
Avatar

Joined: 26 July 2006
Status: Offline
Points: 1672
Post Options Post Options   Thanks (0) Thanks(0)   Quote znakeeye Quote  Post ReplyReply Direct Link To This Post Posted: 03 March 2010 at 3:10am
Well, I know you changed/removed a critical section that caused the application to hang when exiting with an html help window visible. So the bug is real.
 
Perhaps it only occurs in Classic mode? I'll see if I can find a pattern later. I'll also try your solution, but even if it works there is most certainly a scary bug in the skin manager :(
PokerMemento - http://www.pokermemento.com/
Back to Top
znakeeye View Drop Down
Senior Member
Senior Member
Avatar

Joined: 26 July 2006
Status: Offline
Points: 1672
Post Options Post Options   Thanks (0) Thanks(0)   Quote znakeeye Quote  Post ReplyReply Direct Link To This Post Posted: 03 March 2010 at 1:14pm

Hmm... please note that I have all CJ skins in a resource-only DLL. I load it in InitInstance and unload it in ExitInstance:
 
    FreeLibrary(s_hSkinModule);
    return CWinApp::ExitInstance();
}
 
Since the exception comes after unloading of the DLL, I suspected that code block was the culprit. Placing the following code above the FreeLibrary call did the trick:
 
XTPSkinManager()->RemoveAll();
 
Now, is that really necessary?!
PokerMemento - http://www.pokermemento.com/
Back to Top
Oleg View Drop Down
Admin Group
Admin Group


Joined: 21 May 2003
Location: United States
Status: Offline
Points: 11234
Post Options Post Options   Thanks (0) Thanks(0)   Quote Oleg Quote  Post ReplyReply Direct Link To This Post Posted: 04 March 2010 at 6:26am
Hi,
 
You free it before all controls destroy self. so you can try move it to destructor  or indeed manually clear SkinManager.
Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS
Back to Top
 Post Reply Post Reply
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 12.04
Copyright ©2001-2021 Web Wiz Ltd.

This page was generated in 0.219 seconds.