|
Hi Christian Graus,
Thank you very much for the response.
I will get hold of that book and start learning.
|
|
|
|
|
Hi,
You will also learn that resources are just a quicker and easier way of achieveing the same goal with API.
Regards
|
|
|
|
|
salam good morning,
when I try to execute a sample done in VC++ 6 and I m working with VC++ .net it allow me to convert it but when I run it, it doesn't work there is many errors. and I remarque that many people tried it and it work for them but in VC++ 6.
what's the difference between these two version normally when we do an amelioration we keep the basics of the last version ?
thank you !
have a nice day
zizzzzzzzzzz
|
|
|
|
|
zizzzz wrote: when I try to execute a sample done in VC++ 6 and I m working with VC++ .net
What are you trying to do ? To execute a program, you don't need to use VC++, you simply starts your program. You mean you try to open the project file created with VC6 under VC.NET ?
zizzzz wrote: it allow me to convert it but when I run it, it doesn't work there is many errors
Again, what means "run" in this case ? For me running a program is just executing it. You probably meant compile it ? And it generates a lot of errors? Is that correct ? Ok, but what are these errors ? It's difficult to help without actually having a look at these errors.
Could you please pay more attention at the words you are using because it's causing a lot of confusions. If you want that people help you, they first need to understand clearly what the problem is.
|
|
|
|
|
yes exactly this I try to open the project file created with VC6 under VC.NET and I find many errors when compiling it
for example in the sample gridctrl_demo221 which is available here with samples of codeproject I find this errors:
error C2360: initialisation of 'pts' is ignored bye 'case'
in all samples of gridctrl I found many problems but when I run the sample.exe it is working properly
|
|
|
|
|
This error should be generated also under VC6 if I remember well. Anyway, can you post the switch statement in which this error is generated ?
|
|
|
|
|
switch (pMsg->message)<br />
{<br />
case WM_MBUTTONDOWN:<br />
POINTS pts = MAKEPOINTS( pMsg->lParam );<br />
POINT point;<br />
point.x = pts.x;<br />
point.y = pts.y;<br />
ClientToScreen( &point );<br />
pWnd = WindowFromPoint( point );<br />
if( pWnd == this ) <br />
pWnd = m_pParentWnd;<br />
hittest = (int)pWnd->SendMessage(WM_NCHITTEST,0,MAKELONG(point.x,point.y));<br />
case WM_KEYDOWN:<br />
case WM_SYSKEYDOWN:
case WM_KEYDOWN: case WM_SYSKEYDOWN:
Hide();<br />
m_pParentWnd->PostMessage( pMsg->message, pMsg->wParam, pMsg->lParam );<br />
return TRUE;<br />
}
thank's
|
|
|
|
|
You can't declare a variable inside a case except if it is inside brackets. It is strange that this code compiles under VC6 (did you test it ?).
I know that compilers become more strict and thus sometimes generate an error when previously you had only a warning.
|
|
|
|
|
i have my code like this
CArchive ar (&fp, CArchive::store); <br />
Serialize(ar);<br />
ar.Close();
if ar.Close() is called does it close the file pointer associcated with it(fp.Close)?
When i am calling copy or delete fn.s after these line on that file, they return unsuccess.
What could be the reason.
Thank u.
KIRAN PINJARLA
|
|
|
|
|
kiran.pinjarla wrote: if ar.Close() is called does it close the file pointer associcated with it(fp.Close)?
Yes, it does close CArchive. But not the CFile associated with it. kiran.pinjarla wrote: When i am calling copy or delete fn.s after these line on that file
What are these function ? of which class?
-- modified at 3:33 Thursday 30th November, 2006
-- modified at 4:59 Thursday 30th November, 2006
|
|
|
|
|
prasad_som wrote: You need to call CFile::Close before using CArchive::Close
In my opinion the file must be closed after closing the archive. Otherwise it will be impossible to flush the last data kept in an internal buffer of CArchive .
If the CFile and CArchive objects are created on the stack, then they will be closed automatically in right order.
|
|
|
|
|
Viorel. wrote: In my opinion the file must be closed after closing the archive
You are right.
|
|
|
|
|
from MSDN:
CArchive::Close
void Close( );
throw( CArchiveException, CFileException );
Remarks
Flushes any data remaining in the buffer, closes the archive, and disconnects the archive from the file. No further operations on the archive are permitted. After you close an archive, you can create another archive for the same file or you can close the file.
The member function Close ensures that all data is transferred from the archive to the file, and it makes the archive unavailable. To complete the transfer from the file to the storage medium, you must first use CFile::Close and then destroy the CFile object.
i.e. CArchive::Close does NOT close the related CFile.
perhaps your is not a CFile, but MSDN also states:
CFile( int hFile );
[...].The constructor with one argument creates a CFile object that corresponds to an existing operating-system file identified by hFile. No check is made on the access mode or file type. When the CFile object is destroyed, the operating-system file will not be closed. You must close the file yourself.
kiran.pinjarla wrote: When i am calling copy or delete fn.s after these line on that file, they return unsuccess
what are you doing?
hope that helps...
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.
|
|
|
|
|
Thank you capallini.
But if i call fp.Close() after ar.Close() i am getting an expection.
KIRAN PINJARLA
|
|
|
|
|
You need to call CFile::Close before CArchive::Close .
|
|
|
|
|
prasad_som wrote: You need to call CFile::Close before CArchive::Close.
You are wrong. CArchive does not close the file object.
This is the source code...
void CArchive::Close()
{
ASSERT_VALID(m_pFile);
Flush();
m_pFile = NULL;
}
|
|
|
|
|
I think you replying to my previous reply.
Haven't you seen I've already modified it?
|
|
|
|
|
prasad_som wrote: I think you replying to my previous reply.
Haven't you seen I've already modified it?
No I didn't see but still why are you saying that CFile::Close should be called before CArchive:Close . Why what's the reason?
|
|
|
|
|
You are right.
|
|
|
|
|
Since the following snipped of code works fine on my system:
CFile file;
MyObject obj;
file.Open("foo.txt",CFile::modeWrite|CFile::modeCreate);
CArchive ar(&file, CArchive::store);
obj.Serialize(ar);
ar.Close();
file.Close();
hope that helps.
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.
|
|
|
|
|
Yes. I was wrong.
It was not this fp.Close() which was causing the exception.
It was another Close().
Anyhow learned a few new things.
Thank you all.
KIRAN PINJARLA
|
|
|
|
|
dear,
<pre></pre> tags are for posting code samples, not quotation, because you're breaking the page...
thank you
|
|
|
|
|
|
hello all
i want any widget who can rotate to carry out my function in a mfc project
thanks in advance
henry
|
|
|
|
|
Could you decipher your post for us (simple people) please...
Regards
|
|
|
|