loading dll second time giving error "A required resource was unavailable"
-
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.
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] =
-
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.
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
-
I am not able to delete the view it's crashing delete m_pNewView; It's crashing. how can I delete the view.????
I'll reply again to this message. You have added too much unformatted code to your other posts (therefore somebody has donevoted them).
- You should use the 'code' button on top of the CP message input window to format the selection as C++ code.
- You should limit the amount of code. Nobody here will step through too many lines.
Regarding the
CView
deletion: Why do you use aCView
derived class within aCDialog
? Using aCWnd
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. -
I'll reply again to this message. You have added too much unformatted code to your other posts (therefore somebody has donevoted them).
- You should use the 'code' button on top of the CP message input window to format the selection as C++ code.
- You should limit the amount of code. Nobody here will step through too many lines.
Regarding the
CView
deletion: Why do you use aCView
derived class within aCDialog
? Using aCWnd
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.your answer is not a solution. try to solve the problem.
-
your answer is not a solution. try to solve the problem.
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
-
your answer is not a solution. try to solve the problem.
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.
-
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.
-
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.
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
-
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
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 aCFrameWnd
derived class. Change yourCView
class to be based on aCWnd
. -
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.
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]
-
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]
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
-
The error is very probably in your DLL showing a dialog. Common sources are forgetting to release DCs and GDI objects.
Can u give me your mail id so that I can send you the project. Can u help me ?
-
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
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
-
Can u give me your mail id so that I can send you the project. Can u help me ?
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.
-
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
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)
-
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)
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
-
The error is very probably in your DLL showing a dialog. Common sources are forgetting to release DCs and GDI objects.
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.