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

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

    CodeProject.com : C++ MVP

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

    Do you mean before Win98 added stuff like TransparentBlt ? Or just managing GDI handles in general ? Christian Graus - Microsoft MVP - C++

    C 1 Reply Last reply
    0
    • C Christian Graus

      Do you mean before Win98 added stuff like TransparentBlt ? Or just managing GDI handles in general ? Christian Graus - Microsoft MVP - C++

      C Offline
      C Offline
      Chris Maunder
      wrote on last edited by
      #8

      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 R V J 4 Replies 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

        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