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. General Programming
  3. C / C++ / MFC
  4. loading dll second time giving error "A required resource was unavailable"

loading dll second time giving error "A required resource was unavailable"

Scheduled Pinned Locked Moved C / C++ / MFC
helpc++announcementlearning
27 Posts 4 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.
  • J Jochen Arndt

    That's one place where you release a DC (in your app or the DLL?). If not in the DLL, you should concentrate on the DLL code. There may be multiple places in your code using DCs and GDI objects. If you miss any release call or forget to de-select GDI objcets out of context, the error may occcur. I can't really help you without seeing the code. I can only guess. Check this example code:

    CDC *pDC = GetDC();
    CPen NewPen(PS_SOLID, 0, m_Color);
    CPen *pOldPen = pDC->SelectObject(&NewPen);
    CFont *pOldFont = pDC->SelectObject(m_pMyFont);
    // do something with the DC
    ...
    // Don't forget to select the old objects
    pDC->SelectObject(pOldFont);
    pDC->SelectObject(pOldPen);
    // Don't forget to release the DC
    ReleaseDC(pDC);

    A Offline
    A Offline
    appollosputnik
    wrote on last edited by
    #9

    I am not able to delete the view it's crashing delete m_pNewView; It's crashing. how can I delete the view.????

    J 2 Replies Last reply
    0
    • A appollosputnik

      I am not able to delete the view it's crashing delete m_pNewView; It's crashing. how can I delete the view.????

      J Offline
      J Offline
      Jochen Arndt
      wrote on last edited by
      #10

      I'm sorry, but without knowing your code, I can't really help. Also, is there a relation to the original question, or is it a new one? If it is a new one, you should open a new question. Views are usually handled by the document class and the frame work. To close a view manually, the parent frame of the view must be closed.

      A 2 Replies Last reply
      0
      • J Jochen Arndt

        I'm sorry, but without knowing your code, I can't really help. Also, is there a relation to the original question, or is it a new one? If it is a new one, you should open a new question. Views are usually handled by the document class and the frame work. To close a view manually, the parent frame of the view must be closed.

        A Offline
        A Offline
        appollosputnik
        wrote on last edited by
        #11

        this is my view class of the dll [code] // MyView.cpp : implementation file // #include "stdafx.h" #include "DlgsViewDlg.h" #include "MyView.h" ////////////////////////////////////////////////////////////////////////// #include // Header File For Windows #include // Header File For Windows Math Library #include // Header File For Standard Input/Output #include // Header File For Variable Argument Routines #include // Header File For The OpenGL32 Library #include // Header File For The GLu32 Library #include // Header File For The Glaux Library //#include ///////////////////////////////////////////////////////////////////////// #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif #pragma comment (lib, "OpenGL32.lib") #pragma comment (lib, "glu32.lib") #define NOFPOINTSINARC 5 #define NSWEEP 60 #define DIB_HEADER_MARKER ((WORD) ('M' << 8) | 'B') #define WIDTHBYTES(bits) (((bits) + 31) / 32 * 4) ///////////////////////////////////////////////////////////////////////////// // CMyView typedef enum state { NOMOVE = 0, PAN , ZOOM, ROTATE } statemovement; struct vec3{ float x, y, z; }; GLfloat trans[3]; /* current translation */ GLfloat trans_axes[3]; GLfloat rot[3]; statemovement STATE; GLfloat PI = 4 * atan(1.0); //////////////////////// GLuint base; // Base Display List For The Font Set GLfloat cnt1; // 1st Counter Used To Move Text & For Coloring GLfloat cnt2; // 2nd Counter Used To Move Text & For Coloring bool keys[256]; // Array Used For The Keyboard Routine bool active=TRUE; // Window Active Flag Set To TRUE By Default bool fullscreen=TRUE; // Fullscreen Flag Set To Fullscreen Mode By Default //////////////////////// double CMyView::left = -10.0f; double CMyView::right = 10.0f; double CMyView::top = -10.0f; double CMyView::bottom = 10.0f; double CMyView::znear = -100.0f; double CMyView::zfar = 100.0f; static float zoomFactor = 1.0f; static bool colorChange=false; static double iRed=1.0f; static double iGreen=0.0f; static double iBlue=0.0f; IMPLEMENT_DYNCREATE(CMyView, CView) CMyView::CMyView() :object(0) ,startPoints(NULL) ,endPoints(NULL) ,arcs(NULL) ,pan(false) ,zoom(false) ,rotate(false) ,x(NULL) ,y(NULL) ,allX(NULL) ,allY(NULL) ,allZ(NULL) ,cx(0.0) ,cy(0.0) ,cz(0.0) ,isModel(false) { trans[0] = 0.0f; trans[1] =

        1 Reply Last reply
        0
        • J Jochen Arndt

          I'm sorry, but without knowing your code, I can't really help. Also, is there a relation to the original question, or is it a new one? If it is a new one, you should open a new question. Views are usually handled by the document class and the frame work. To close a view manually, the parent frame of the view must be closed.

          A Offline
          A Offline
          appollosputnik
          wrote on last edited by
          #12

          this is my dialog class of the dll.......In the view class you can see I have done ReleaseDC everywhere. Check if could help resolve this error. Thanks a lot for your help. [code] // DlgsViewDlg.cpp : implementation file // #include "stdafx.h" #include "DlgsView.h" #include "DlgsViewDlg.h" #include "MyView.h" #ifdef _DEBUG #define new DEBUG_NEW #endif static UINT BASED_CODE indicators[] = { ID_INDICATOR_NISH, ID_INDICATOR_TIME }; // CAboutDlg dialog used for App About class CAboutDlg : public CDialog { public: CAboutDlg(); // Dialog Data enum { IDD = IDD_ABOUTBOX }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support // Implementation protected: DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) END_MESSAGE_MAP() // CDlgsViewDlg dialog CString CDlgsViewDlg::fileName = L""; CDlgsViewDlg::CDlgsViewDlg(CString filename, CWnd* pParent /*=NULL*/) : CDialog(CDlgsViewDlg::IDD, pParent) { m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); fileName = filename; } CDlgsViewDlg::~CDlgsViewDlg() { delete m_pNewView; } void CDlgsViewDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CDlgsViewDlg, CDialog) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_COMMAND(ID_FILE_NEW,OnFileNew) //}}AFX_MSG_MAP ON_COMMAND(ID_UTILITY_EXIT, &CDlgsViewDlg::OnUtilityExit) ON_COMMAND(ID_EXIT, &CDlgsViewDlg::OnExit) ON_COMMAND(ID_UTILITY_LOADPROFILE, &CDlgsViewDlg::OnUtilityLoadprofile) ON_COMMAND(ID_UTILITY_GENERATESURFACE, &CDlgsViewDlg::OnUtilityGeneratesurface) ON_COMMAND(ID_UTILITY_DRAW1, &CDlgsViewDlg::OnUtilityDraw1) ON_COMMAND(ID_UTILITY_DRAW3, &CDlgsViewDlg::OnUtilityDraw3) ON_COMMAND(ID_UTILITY_SAVEASIMAGE, &CDlgsViewDlg::OnUtilitySaveasimage) ON_COMMAND(ID_VIEW_WIREFRAME, &CDlgsViewDlg::OnViewWireframe) ON_COMMAND(ID_VIEW_SHADE, &CDlgsViewDlg::OnViewShade) ON_COMMAND(ID_VIEW_NORMAL, &CDlgsViewDlg::OnViewNormal) ON_COMMAND(ID_VIEW_PAN, &CDlgsViewDlg::OnViewPan) ON_COMMAND(ID_VIEW_ZOOM, &CDlgsViewDlg::OnViewZoom) ON_COMMAND(ID_VIEW_ROTATE, &CDlgsViewDlg::OnViewRotate) ON_COMMAND(ID_VIEW_TOPVIEW, &CDlgsViewDlg::OnViewTopview) ON_COMMAND(ID_VIEW_FRONTVIEW, &CDlgsViewDlg::OnViewFrontview) ON_COMMAND(ID_VIEW_SIDEVIEW, &CDlgsViewDlg::OnViewSideview) ON_COMMAND(ID

          1 Reply Last reply
          0
          • A appollosputnik

            I am not able to delete the view it's crashing delete m_pNewView; It's crashing. how can I delete the view.????

            J Offline
            J Offline
            Jochen Arndt
            wrote on last edited by
            #13

            I'll reply again to this message. You have added too much unformatted code to your other posts (therefore somebody has donevoted them).

            1. You should use the 'code' button on top of the CP message input window to format the selection as C++ code.
            2. You should limit the amount of code. Nobody here will step through too many lines.

            Regarding the CView deletion: Why do you use a CView derived class within a CDialog? Using a CWnd derived class as user control should solve your problem. CView classes are used with the document view model and expect to have a frame window as parent.

            A 1 Reply Last reply
            0
            • J Jochen Arndt

              I'll reply again to this message. You have added too much unformatted code to your other posts (therefore somebody has donevoted them).

              1. You should use the 'code' button on top of the CP message input window to format the selection as C++ code.
              2. You should limit the amount of code. Nobody here will step through too many lines.

              Regarding the CView deletion: Why do you use a CView derived class within a CDialog? Using a CWnd derived class as user control should solve your problem. CView classes are used with the document view model and expect to have a frame window as parent.

              A Offline
              A Offline
              appollosputnik
              wrote on last edited by
              #14

              your answer is not a solution. try to solve the problem.

              L J 2 Replies Last reply
              0
              • A appollosputnik

                your answer is not a solution. try to solve the problem.

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

                sujandasmahapatra wrote:

                your answer is not a solution

                Being rude is not a solution either.

                Why is common sense not common? Never argue with an idiot. They will drag you down to their level where they are an expert. Sometimes it takes a lot of work to be lazy Individuality is fine, as long as we do it together - F. Burns

                1 Reply Last reply
                0
                • A appollosputnik

                  your answer is not a solution. try to solve the problem.

                  J Offline
                  J Offline
                  Jochen Arndt
                  wrote on last edited by
                  #16

                  sujandasmahapatra wrote:

                  your answer is not a solution

                  The solution is to not use a CView derived class as a client window of a dialog.

                  sujandasmahapatra wrote:

                  try to solve the problem

                  No. You must solve the problem. It's not my job. The only thing I can do, is to help you.

                  L A C 3 Replies Last reply
                  0
                  • J Jochen Arndt

                    sujandasmahapatra wrote:

                    your answer is not a solution

                    The solution is to not use a CView derived class as a client window of a dialog.

                    sujandasmahapatra wrote:

                    try to solve the problem

                    No. You must solve the problem. It's not my job. The only thing I can do, is to help you.

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

                    5 for your patience.

                    Why is common sense not common? Never argue with an idiot. They will drag you down to their level where they are an expert. Sometimes it takes a lot of work to be lazy Individuality is fine, as long as we do it together - F. Burns

                    1 Reply Last reply
                    0
                    • J Jochen Arndt

                      sujandasmahapatra wrote:

                      your answer is not a solution

                      The solution is to not use a CView derived class as a client window of a dialog.

                      sujandasmahapatra wrote:

                      try to solve the problem

                      No. You must solve the problem. It's not my job. The only thing I can do, is to help you.

                      A Offline
                      A Offline
                      appollosputnik
                      wrote on last edited by
                      #18

                      i wanted a view on the dialog. so i derived from cview and created the view in the dialog. 1st time everything is coming fine. but without closing the client application if i try to launch again the dialog then it's giving error. Please give me some suggestion how can i get rid of it. Thanks

                      J 1 Reply Last reply
                      0
                      • A appollosputnik

                        i wanted a view on the dialog. so i derived from cview and created the view in the dialog. 1st time everything is coming fine. but without closing the client application if i try to launch again the dialog then it's giving error. Please give me some suggestion how can i get rid of it. Thanks

                        J Offline
                        J Offline
                        Jochen Arndt
                        wrote on last edited by
                        #19

                        The problem is that the view is not properly closed. But even if you would close it properly, there will be other problems. A CView is not designed to be a child view of a dialog. It must be a child of a CFrameWnd derived class. Change your CView class to be based on a CWnd.

                        1 Reply Last reply
                        0
                        • J Jochen Arndt

                          sujandasmahapatra wrote:

                          your answer is not a solution

                          The solution is to not use a CView derived class as a client window of a dialog.

                          sujandasmahapatra wrote:

                          try to solve the problem

                          No. You must solve the problem. It's not my job. The only thing I can do, is to help you.

                          C Offline
                          C Offline
                          Chris Meech
                          wrote on last edited by
                          #20

                          And demonstrating a great deal of restraint as well. Good for you. :)

                          Chris Meech I am Canadian. [heard in a local bar] In theory there is no difference between theory and practice. In practice there is. [Yogi Berra] posting about Crystal Reports here is like discussing gay marriage on a catholic church’s website.[Nishant Sivakumar]

                          A 1 Reply Last reply
                          0
                          • C Chris Meech

                            And demonstrating a great deal of restraint as well. Good for you. :)

                            Chris Meech I am Canadian. [heard in a local bar] In theory there is no difference between theory and practice. In practice there is. [Yogi Berra] posting about Crystal Reports here is like discussing gay marriage on a catholic church’s website.[Nishant Sivakumar]

                            A Offline
                            A Offline
                            appollosputnik
                            wrote on last edited by
                            #21

                            wherever i used GetDc() i have done ReleaseDC...Still the error is coming, "A required resource was unavailable". Please help me to resolve this. why 2nd time my application is not launching.? please tell whatelse I need to do ? Thanks

                            L 1 Reply Last reply
                            0
                            • J Jochen Arndt

                              The error is very probably in your DLL showing a dialog. Common sources are forgetting to release DCs and GDI objects.

                              A Offline
                              A Offline
                              appollosputnik
                              wrote on last edited by
                              #22

                              Can u give me your mail id so that I can send you the project. Can u help me ?

                              J 1 Reply Last reply
                              0
                              • A appollosputnik

                                wherever i used GetDc() i have done ReleaseDC...Still the error is coming, "A required resource was unavailable". Please help me to resolve this. why 2nd time my application is not launching.? please tell whatelse I need to do ? Thanks

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

                                sujandasmahapatra wrote:

                                please tell whatelse I need to do ?

                                You probably need to do some serious debugging, firstly to find out why and where this message is produced.

                                Unrequited desire is character building. OriginalGriff I'm sitting here giving you a standing ovation - Len Goodman

                                A 1 Reply Last reply
                                0
                                • A appollosputnik

                                  Can u give me your mail id so that I can send you the project. Can u help me ?

                                  J Offline
                                  J Offline
                                  Jochen Arndt
                                  wrote on last edited by
                                  #24

                                  Sorry, but I don't want to write your code. I - and most others here - just enjoy helping. The design of your application is definitely broken. That is your problem. Tampering with the existing code is the wrong way. Reconsider the design. Read about dialogs hosting user controls.

                                  1 Reply Last reply
                                  0
                                  • L Lost User

                                    sujandasmahapatra wrote:

                                    please tell whatelse I need to do ?

                                    You probably need to do some serious debugging, firstly to find out why and where this message is produced.

                                    Unrequited desire is character building. OriginalGriff I'm sitting here giving you a standing ovation - Len Goodman

                                    A Offline
                                    A Offline
                                    appollosputnik
                                    wrote on last edited by
                                    #25

                                    it's giving this error First-chance exception at 0x7c812afb in TestRev.exe: Microsoft C++ exception: CResourceException at memory location 0x0012ed28.. Crashing in wincore.cpp -- AfxRegisterClass(WNDCLASS* lpWndClass)

                                    L 1 Reply Last reply
                                    0
                                    • A appollosputnik

                                      it's giving this error First-chance exception at 0x7c812afb in TestRev.exe: Microsoft C++ exception: CResourceException at memory location 0x0012ed28.. Crashing in wincore.cpp -- AfxRegisterClass(WNDCLASS* lpWndClass)

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

                                      And what does that tell us? Pretty much nothing. You need to look at your code where this error occurs and find out what your program is doing, or trying to do: that is where the error lies.

                                      Unrequited desire is character building. OriginalGriff I'm sitting here giving you a standing ovation - Len Goodman

                                      1 Reply Last reply
                                      0
                                      • J Jochen Arndt

                                        The error is very probably in your DLL showing a dialog. Common sources are forgetting to release DCs and GDI objects.

                                        A Offline
                                        A Offline
                                        appollosputnik
                                        wrote on last edited by
                                        #27

                                        I have got the problem I have implemented the PrecreateWindow for my view class. just check this code. [code] BOOL CMyView::PreCreateWindow(CREATESTRUCT& cs) { cs.lpszClass = ::AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS | CS_OWNDC,::LoadCursor(NULL, IDC_ARROW), NULL, NULL); cs.style |= WS_CLIPSIBLINGS | WS_CLIPCHILDREN; cs.dwExStyle = WS_EX_CLIENTEDGE; return CView::PreCreateWindow(cs); } [/code] If I remove the first line, i.e cs.lpszClass = ::AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS | CS_OWNDC,::LoadCursor(NULL, IDC_ARROW), NULL, NULL); then my dll window is coming all the times from the client call. But it's flickering . So now please help me what can I do to resolve this. I think some of you must have understood the problem, please help me. Thanks a lot.

                                        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