|
Hanan888 wrote: ...I get 'debug assertion failed' inside ReleaseDc().
What line of what file is asserting?
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
in <atlimage.h> , line 1217
inline void CImage::ReleaseDC() const throw()
{
HBITMAP hBitmap;
ATLASSUME( m_hDC != NULL );
m_nDCRefCount--;
if( m_nDCRefCount == 0 )
{
hBitmap = HBITMAP( ::SelectObject( m_hDC, m_hOldBitmap ) );
ATLASSERT( hBitmap == m_hBitmap );
s_cache.ReleaseDC( m_hDC );
m_hDC = NULL;
}
}
|
|
|
|
|
Can you show the code?
What are you calling ReleaseDC() on? The CImage object?
You shouldn't be using CImage::GetDC()/CImage::ReleaseDC() when
using CImage::Draw().
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
I have a function like this
BOOL CShowAndEditSQLDlg::IsSQLKeyword( CString strSQLWord )<br />
{<br />
<br />
char * strKeyword[19] = { "SELECT", "FROM", "WHERE", "IN", "ORDER", "GROUP", "BY", <br />
"INNER", "OUTER", "JOIN", "AS", "ON", "MIN", "MAX", "AVG", "SUM", ",", "AND", "."};<br />
<br />
<br />
for ( int i =0; i < 19; i++ )<br />
if ( stricmp ( strKeyword[i], LPCTSTR(strSQLWord) ) == 0 )<br />
return TRUE;<br />
<br />
return FALSE;<br />
}
But if I Compile that code with UNICODE settings, it is giving following error.
error C2664: 'stricmp' : cannot convert parameter 1 from 'unsigned short *' to 'const char *'
Please help me.
|
|
|
|
|
Royaltvk wrote: error C2664: 'stricmp' : cannot convert parameter 1 from 'unsigned short *' to 'const char *'
Probably the error comes instead on parameter 2.
Anyway, change your code as follows
BOOL CShowAndEditSQLDlg::IsSQLKeyword( CString strSQLWord )
{
TCHAR * strKeyword[19] = { _T("SELECT"), _T("FROM"), _T("WHERE"), _T("IN"), _T("ORDER"), _T("GROUP"), _T("BY"),
_T("INNER"), _T("OUTER"), _T("JOIN"), _T("AS"), _T("ON"), _T("MIN"), _T("MAX"), _T("AVG"), _T("SUM"), _T(","), _T("AND"), _T(".")};
for ( int i =0; i < 19; i++ )
if ( _tcsicmp ( strKeyword[i], LPCTSTR(strSQLWord) ) == 0 )
return TRUE;
return FALSE;
}
OT: sorry Mark no GetBuffer here.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
Thank u somuch for your code
It is perfectly working.
U got my 5 Marks.
Royal.
|
|
|
|
|
Actually I got 1 , anyway, you're welcome.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
I've balanced it up with my 5 vote.
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|
Ah, were you, thanks buddy!
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
CPallini wrote: OT: sorry Mark no GetBuffer here.
Hehe I can't believe that caught my eye when I glazed over your post
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
To complete with the previous answer, you can also have a look at this article[^] if you want to understand a bit better why you have that compilation error.
|
|
|
|
|
Is IsSQLKeyword() called often?
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
|
preeti sharma wrote: how can i create a toolbar on a dialog box in MFC.
By performing a basic google search[^]
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|
Hi to all!
In my code I call 'AfxBeginThread' in which I fetch data from Database. I use 'theApp.DoWaitCuscor(1)' within thread to display hourglass cursor and 'theApp.DoWaitCuscor(-1)' to remove it when I'm done.
But this don't happens. Why?
P.S.
Thanks for all help
|
|
|
|
|
Don't do that inside the worker thread. Post a message from the worker thread to the GUI one and let the latter do the job.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
Thanks for help, I post two messages one at the beginning of thread and one when all the work is done. My 'PreTranslateMessage' loks like this:
BOOL CUsageAccView::PreTranslateMessage(MSG* pMsg) <br />
{<br />
if(pMsg->message == WMU_WORK_START)<br />
{<br />
::SetCursor(LoadCursor(NULL,IDC_WAIT));<br />
}<br />
else if(pMsg->message == WMU_WORK_END)<br />
{<br />
::SetCursor(LoadCursor(NULL,IDC_ARROW));<br />
}<br />
return cdxCDynamicFormView::PreTranslateMessage(pMsg);<br />
}<br />
This works fine if I don't move mouse, but when I do cursor restores it self!
Why?
|
|
|
|
|
From MSDN , SetCursor reference
If your application must set the cursor while it is in a window, make sure the class cursor for the specified window's class is set to NULL. If the class cursor is not NULL, the system restores the class cursor each time the mouse is moved.
you may also change the class cursor of your window:
SetClassLong( hWnd, GCL_HCURSOR, (LONG)LoadCursor(NULL, IDC_ARROW));
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
Another thanks man!
Where do you suppose I include this line of code, in 'OnInitialUpdate' of my view?
Thanks.
P.S.
I included this line:
SetClassLong( this->m_hWnd, GCL_HCURSOR, (LONG)LoadCursor(NULL, IDC_ARROW));
at my view-s OnInitialUpdata and still no change, my cursor still reset from hourglass to arrow when I move the mouse!
modified on Tuesday, March 18, 2008 12:08 PM
|
|
|
|
|
josip cagalj wrote: Where do you suppose I include this line of code, in 'OnInitialUpdate' of my view?
Thanks.
Nope. You need to change your SetCursor(... lines with corrensponding SetClassLong(... ones.
Good luck.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
Hi
i have one c++ source code.This code was good compiling in windows XP (The output of the code was return value '0')
and then i was changed into windows Vista its also compiling but it gives the return value '255'..
i am using the compiler visual studio 2005
i dont know not much of idea this problem ...
*****THANKS N ADVANCE****
Mathen.K
(I WILL TRY MY LEVEL BEST )
|
|
|
|
|
What function returns you '0' or '255'?
Maxwell Chen
|
|
|
|
|
Thanks to your replay ...
HRESULT datatype function retun in 0 (in XP) and 255(in vista)
*****THANKS N ADVANCE****
Mathen.K
(I WILL TRY MY LEVEL BEST )
|
|
|
|
|
You have two different options:
1. Hard-code your function to return 0 always.
(or)
2. Let us know what is the 'function' that you are talking about, why should it return 0 and not 255, show us any relevent piece of code, why would you still want to continue programming, etc.,
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|
Hi this is my sample code .
STDMETHODIMP CFileIO::VerifyUser(SAFEARRAY* userCredential, SAFEARRAY* appCredential, BYTE* result)<br />
{<br />
*result = (BYTE)false;
try<br />
{<br />
validateCredential(appCredential);<br />
validateUser(userCredential);
*result = (BYTE)true;<br />
}<br />
catch (std::exception& e)<br />
{<br />
log("Verify User", e.what(), EVENTLOG_ERROR_TYPE);<br />
}<br />
return S_OK;<br />
}
#define S_OK ((HRESULT)0x00000000L)//winerror.h
#define S_FALSE ((HRESULT)0x00000001L)//winerror.h
return S_OK ;
return S_FALSE;
this is perfectly running in windows XP and it gives return value '0'but in vista it running good but it gives the retun value 255.
whats the problem about that?
*****THANKS N ADVANCE****
Mathen.K
(I WILL TRY MY LEVEL BEST )
|
|
|
|