Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. New Windows bug causes GDI leaks in MFC apps

New Windows bug causes GDI leaks in MFC apps

Scheduled Pinned Locked Moved The Lounge
helpc++comgraphicsjson
23 Posts 14 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Chris Maunder

    I mean that you were strictly limited in the number of GDI objects you could create (without releasing) before the system started refusing to grant you more. You quickly learned to check the return values of system calls :) cheers, Chris Maunder

    CodeProject.com : C++ MVP

    C Offline
    C Offline
    Christian Graus
    wrote on last edited by
    #9

    Oh, OK. I didn't recall that, especially, but I believe you :-) Was the limit really small and then grew in W98 ? I did write a paint program for W95, but I developed it using W98 and then 2000. Christian Graus - Microsoft MVP - C++

    J S L 3 Replies Last reply
    0
    • C Christian Graus

      Oh, OK. I didn't recall that, especially, but I believe you :-) Was the limit really small and then grew in W98 ? I did write a paint program for W95, but I developed it using W98 and then 2000. Christian Graus - Microsoft MVP - C++

      J Offline
      J Offline
      J Dunlap
      wrote on last edited by
      #10

      Christian Graus wrote:

      Was the limit really small and then grew in W98 ?

      It was really small and didn't grow noticably in Win98 - at least it wasn't enough for me to notice much. All the Win9_x_ versions suffer from the fixed system resource problem. It's a nostalgic memory looking back, but I wouldn't return to those days. ;)

      1 Reply Last reply
      0
      • C Christian Graus

        Oh, OK. I didn't recall that, especially, but I believe you :-) Was the limit really small and then grew in W98 ? I did write a paint program for W95, but I developed it using W98 and then 2000. Christian Graus - Microsoft MVP - C++

        S Offline
        S Offline
        Shog9 0
        wrote on last edited by
        #11

        Better! It was really small in W95 and W98, but the shell itself used more in W98, so you essentially started out closer to the ceiling. I remember in particular one 3rd-party control (a grid) that could display small images, but refused to release their handles until it was destroyed. Many a curse was heard from the direction of QA, as their stress-tests failed spectacularly half-way through with a Win3.1-ish "white screen of lameness". I ended up writing a beautiful hack to draw all the images over the top of the grid once it was done drawing itself - ah, good times... :rolleyes:

        My god, you're a genius! - Jörgen Sigvardsson, The Lounge

        J 1 Reply Last reply
        0
        • S Shog9 0

          Better! It was really small in W95 and W98, but the shell itself used more in W98, so you essentially started out closer to the ceiling. I remember in particular one 3rd-party control (a grid) that could display small images, but refused to release their handles until it was destroyed. Many a curse was heard from the direction of QA, as their stress-tests failed spectacularly half-way through with a Win3.1-ish "white screen of lameness". I ended up writing a beautiful hack to draw all the images over the top of the grid once it was done drawing itself - ah, good times... :rolleyes:

          My god, you're a genius! - Jörgen Sigvardsson, The Lounge

          J Offline
          J Offline
          J Dunlap
          wrote on last edited by
          #12

          Shog9 wrote:

          It was really small in W95 and W98, but the shell itself used more in W98, so you essentially started out closer to the ceiling.

          I don't remember Win98 1st Edition being much worse off as far as that, but Win98SE definitely was. You'd restart and then you'd barely do anything before you'd have to restart again.

          1 Reply Last reply
          0
          • C Christian Graus

            Oh, OK. I didn't recall that, especially, but I believe you :-) Was the limit really small and then grew in W98 ? I did write a paint program for W95, but I developed it using W98 and then 2000. Christian Graus - Microsoft MVP - C++

            L Offline
            L Offline
            Luis Alonso Ramos
            wrote on last edited by
            #13

            Does someone remember GetFreeSystemResources? everyone used it to show a little number in their About box... as if users did care! :laugh: -- LuisR


            Luis Alonso Ramos Intelectix - Chihuahua, Mexico Not much here: My CP Blog!

            The amount of sleep the average person needs is five more minutes. -- Vikram A Punathambekar, Aug. 11, 2005

            1 Reply Last reply
            0
            • C Chris Maunder

              I mean that you were strictly limited in the number of GDI objects you could create (without releasing) before the system started refusing to grant you more. You quickly learned to check the return values of system calls :) cheers, Chris Maunder

              CodeProject.com : C++ MVP

              R Offline
              R Offline
              Ravi Bhavnani
              wrote on last edited by
              #14

              Actually it was much worse in Win 3.1 - I spent several sleepless weekends debugging this[^]. :sigh: /ravi My new year's resolution: 2048 x 1536 Home | Music | Articles | Freeware | Trips ravib(at)ravib(dot)com

              N 1 Reply Last reply
              0
              • R Ravi Bhavnani

                Actually it was much worse in Win 3.1 - I spent several sleepless weekends debugging this[^]. :sigh: /ravi My new year's resolution: 2048 x 1536 Home | Music | Articles | Freeware | Trips ravib(at)ravib(dot)com

                N Offline
                N Offline
                Neville Franks
                wrote on last edited by
                #15

                Win 2.0 was even worse still.;) Mind you thankfully that is but a faint memory. Neville Franks, Author of ED for Windows www.getsoft.com and Surfulater www.surfulater.com "Save what you Surf"

                1 Reply Last reply
                0
                • J Joshua Quick

                  For all of you MFC developers out there busy trying to locate what's causing those recent GDI leaks in your app, take a look at this. It turns out running MFC apps on WinXP sp2 and Win2003 leaks GDI resources while XP themes are enabled. The bug report on Microsoft's site is dated this month, so it looks like a recent issue (otherwise I would have been pulling out hairs months ago). Here is their bug report. http://support.microsoft.com/?id=319740[^] I tell ya, this one was driving me nuts for the past week. Going over thousands of lines of code only to discover later that it's not my bug. So, I thought I'd be a good CP member and share this with the rest of you.

                  L Offline
                  L Offline
                  Lost User
                  wrote on last edited by
                  #16

                  Recent? You must be joking - this issue is at least 12 months old - I first reported it here on CP in September last year. I also successfully got MS to release a patch for this bug, which I view as a personal triumph! I assure you that this problem will have been affecting your MFC apps since XP SP2 was released. Way to go MS! http://www.codeproject.com/lounge.asp?msg=927571&searchkw=mfc+leak&sd=1%2F1%2F2003&ed=10%2F25%2F2005#xx927571xx[^]


                  The Rob Blog
                  Google Talk: robert.caldecott http://www.codeproject.com/script/comments/forums.asp?msg=927057&forumid=2605&searchkw=mfc+leak+hrgn&sd=1%2F1%2F2004&ed=12%2F31%2F2004#xx927057xx[^] -- modified at 3:18 Tuesday 25th October, 2005

                  J 1 Reply Last reply
                  0
                  • C Chris Maunder

                    Anyone remember the fun and games of Win95's GDI? cheers, Chris Maunder

                    CodeProject.com : C++ MVP

                    M Offline
                    M Offline
                    Michael Dunn
                    wrote on last edited by
                    #17

                    Yes. I'm glad I have more than 64K to work with these days. ;) --Mike-- Visual C++ MVP :cool: LINKS~! Ericahist | 1ClickPicGrabber | NEW~! CP SearchBar v3.0 | C++ Forum FAQ Ford, what's this fish doing in my ear?

                    1 Reply Last reply
                    0
                    • C Chris Maunder

                      I mean that you were strictly limited in the number of GDI objects you could create (without releasing) before the system started refusing to grant you more. You quickly learned to check the return values of system calls :) cheers, Chris Maunder

                      CodeProject.com : C++ MVP

                      V Offline
                      V Offline
                      Vikram A Punathambekar
                      wrote on last edited by
                      #18

                      How dare you post a programming question in the Lou... Oh, it's you, Chris! No, don't mind me... nothing at all... just thought I'd say Hi. ;P Cheers, Vikram.


                      http://www.geocities.com/vpunathambekar

                      Google talk: binarybandit

                      After all is said and done, much is said and little is done.

                      1 Reply Last reply
                      0
                      • L Lost User

                        Recent? You must be joking - this issue is at least 12 months old - I first reported it here on CP in September last year. I also successfully got MS to release a patch for this bug, which I view as a personal triumph! I assure you that this problem will have been affecting your MFC apps since XP SP2 was released. Way to go MS! http://www.codeproject.com/lounge.asp?msg=927571&searchkw=mfc+leak&sd=1%2F1%2F2003&ed=10%2F25%2F2005#xx927571xx[^]


                        The Rob Blog
                        Google Talk: robert.caldecott http://www.codeproject.com/script/comments/forums.asp?msg=927057&forumid=2605&searchkw=mfc+leak+hrgn&sd=1%2F1%2F2004&ed=12%2F31%2F2004#xx927057xx[^] -- modified at 3:18 Tuesday 25th October, 2005

                        J Offline
                        J Offline
                        Joshua Quick
                        wrote on last edited by
                        #19

                        Robert Edward Caldecott wrote:

                        Recent? You must be joking - this issue is at least 12 months old

                        :wtf: Crap! If this is true, then... 1) All of my long running MFC apps are in jeopardy. 2) Microsoft is seriously not cool. They should have fixed this via Windows Update a long time ago. 3) I made a repost. D'oh! Interestingly enough, I haven't heard of any my long running MFC apps bombing in the past year. These apps run 24/7/365 and periodically create and destroy MDI child windows. Are you sure MS didn't fix this? Anyways, where can I download this patch? (Don't tell me I have to go through their tech support team, do I?)

                        L 1 Reply Last reply
                        0
                        • J Joshua Quick

                          Robert Edward Caldecott wrote:

                          Recent? You must be joking - this issue is at least 12 months old

                          :wtf: Crap! If this is true, then... 1) All of my long running MFC apps are in jeopardy. 2) Microsoft is seriously not cool. They should have fixed this via Windows Update a long time ago. 3) I made a repost. D'oh! Interestingly enough, I haven't heard of any my long running MFC apps bombing in the past year. These apps run 24/7/365 and periodically create and destroy MDI child windows. Are you sure MS didn't fix this? Anyways, where can I download this patch? (Don't tell me I have to go through their tech support team, do I?)

                          L Offline
                          L Offline
                          Lost User
                          wrote on last edited by
                          #20

                          They may well of patched this via a Windows Update - there is no way of telling. And yes, I had to go through MS tech support for the hot-fix, so I am not meant to give it to you. :( Oh, and MS support sent me the KB319740 link 12 months ago too. I did find a workaround though - make a call to SetWindowTheme(hWnd, L"", L"") in OnCreate. This means your MDI child windows won't get the XP theme look to their captions, but you'll still get themed controls, etc.


                          The Rob Blog
                          Google Talk: robert.caldecott

                          J G 2 Replies Last reply
                          0
                          • L Lost User

                            They may well of patched this via a Windows Update - there is no way of telling. And yes, I had to go through MS tech support for the hot-fix, so I am not meant to give it to you. :( Oh, and MS support sent me the KB319740 link 12 months ago too. I did find a workaround though - make a call to SetWindowTheme(hWnd, L"", L"") in OnCreate. This means your MDI child windows won't get the XP theme look to their captions, but you'll still get themed controls, etc.


                            The Rob Blog
                            Google Talk: robert.caldecott

                            J Offline
                            J Offline
                            Joshua Quick
                            wrote on last edited by
                            #21

                            That's good to know. Thanks for the tip Robert.

                            1 Reply Last reply
                            0
                            • C Chris Maunder

                              I mean that you were strictly limited in the number of GDI objects you could create (without releasing) before the system started refusing to grant you more. You quickly learned to check the return values of system calls :) cheers, Chris Maunder

                              CodeProject.com : C++ MVP

                              J Offline
                              J Offline
                              Jorgen Sigvardsson
                              wrote on last edited by
                              #22

                              I painfully remember. :sigh: -- Look straight into the light!

                              1 Reply Last reply
                              0
                              • L Lost User

                                They may well of patched this via a Windows Update - there is no way of telling. And yes, I had to go through MS tech support for the hot-fix, so I am not meant to give it to you. :( Oh, and MS support sent me the KB319740 link 12 months ago too. I did find a workaround though - make a call to SetWindowTheme(hWnd, L"", L"") in OnCreate. This means your MDI child windows won't get the XP theme look to their captions, but you'll still get themed controls, etc.


                                The Rob Blog
                                Google Talk: robert.caldecott

                                G Offline
                                G Offline
                                Gary R Wheeler
                                wrote on last edited by
                                #23

                                Robert Edward Caldecott wrote:

                                They may well of patched this via a Windows Update - there is no way of telling.

                                They haven't :suss:. I spot-checked the XP/SP2 machines I'm responsible for (which I keep Windows Update'd), and none of them included the fix.


                                Software Zen: delete this;

                                1 Reply Last reply
                                0
                                Reply
                                • Reply as topic
                                Log in to reply
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes


                                • Login

                                • Don't have an account? Register

                                • Login or register to search.
                                • First post
                                  Last post
                                0
                                • Categories
                                • Recent
                                • Tags
                                • Popular
                                • World
                                • Users
                                • Groups