CString nondeterminism?
Andre Hinsberger -- andre.hinsberger@munich.ixos.de Friday, December 06, 1996 Environment: Win95, VC++ 4.1 >From time to time I encounter a strange phenomenon. Given following object instantiation: CMyFile myFile( "test.dat"); This constructors expects a CString, so that WE expect the compiler to choose CString::CString(LPCTSTR lpsz) for converting our string constant to a CString. This is exactly what happens... in most cases! Sometimes the compiler chooses CString::CString(TCHAR ch, int nLength) which is usually not good at all for the running application. Well, it seems almost like a compiler bug to me. But because I have this phenomenon only with CString I've choosen this mailing list. Any clue? Andr=E9 Hinsberger
Mike Blaszczak -- mikeblas@nwlink.com Sunday, December 08, 1996 At 10:11 12/6/96 +0100, Andre Hinsberger wrote: >Environment: Win95, VC++ 4.1 >This constructors expects a CString, so that WE expect >the compiler to choose > CString::CString(LPCTSTR lpsz) >Sometimes the compiler chooses > CString::CString(TCHAR ch, int nLength) >which is usually not good at all for the running >application. >Well, it seems almost like a compiler bug to me. Can you provide a reproducable case? .B ekiM http://www.nwlink.com/~mikeblas/ I'm afraid I've become some sort of speed freak. These words are my own. I do not speak on behalf of Microsoft.
Roger Onslow/Newcastle/Computer Systems Australia/ Wednesday, December 11, 1996 [Mini-digest: 2 responses] >>This constructors expects a CString, so that WE expect >>the compiler to choose >> CString::CString(LPCTSTR lpsz) >> >>Sometimes the compiler chooses >> CString::CString(TCHAR ch, int nLength) >> >>which is usually not good at all for the running >>application. >>Well, it seems almost like a compiler bug to me. > >Can you provide a reproducable case? We had a similar (identical?) problem where the compiler was chooing the wrong constructor for CString's. This happened a few months ago and we have since worked around it. I am pretty sure that we put a message onto MFC-L about it. I'll check with my associate who should have more info on this and will forward it along to you and the mfc-l list. Roger Onslow Software Development Manager Quisine Division - Computer Systems Australia Quisine Insite - Designing for the Future http://www.compsys.com.au/QInsite.html -----From: Andre Hinsberger>---------- >From: Mike Blaszczak[SMTP:mikeblas@nwlink.com] >Sent: Montag, 9. Dezember 1996 02:38 >To: mfc-l@netcom.com; 'Microsoft Foundation Class Mail List' >Subject: Re: CString nondeterminism? > >At 10:11 12/6/96 +0100, Andre Hinsberger wrote: >>Environment: Win95, VC++ 4.1 > >>This constructors expects a CString, so that WE expect >>the compiler to choose >> CString::CString(LPCTSTR lpsz) > >>Sometimes the compiler chooses >> CString::CString(TCHAR ch, int nLength) > >>which is usually not good at all for the running >>application. >>Well, it seems almost like a compiler bug to me. > >Can you provide a reproducable case? I'm sorry, no. It happens luckily only at rare occasions. That's why I called it a nondeterminism. My guess would be, that there is something wrong with the precompiled headers. A "rebuild all" could probably solve the problem. I will try it the next time. What I'm curious about: Are there other people around, having also encountered this problem? Andr=E9 Hinsberger > >
| Вернуться в корень Архива |