Click here to Skip to main content
15,918,742 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralPhilsophical Question Pin
Chris Losinger14-Aug-02 13:27
professionalChris Losinger14-Aug-02 13:27 
GeneralEmbedded C++ 3.0 Member Variables Pin
Like2Byte14-Aug-02 8:28
Like2Byte14-Aug-02 8:28 
GeneralRe: Embedded C++ 3.0 Member Variables Pin
Bill Wilson14-Aug-02 8:50
Bill Wilson14-Aug-02 8:50 
GeneralRe: Embedded C++ 3.0 Member Variables Pin
Like2Byte14-Aug-02 9:22
Like2Byte14-Aug-02 9:22 
GeneralRe: Embedded C++ 3.0 Member Variables Pin
Bill Wilson14-Aug-02 9:50
Bill Wilson14-Aug-02 9:50 
GeneralRe: Embedded C++ 3.0 Member Variables Pin
Like2Byte14-Aug-02 10:01
Like2Byte14-Aug-02 10:01 
GeneralRe: Embedded C++ 3.0 Member Variables Pin
Bill Wilson14-Aug-02 10:40
Bill Wilson14-Aug-02 10:40 
QuestionIs this bad design (CComVariant) ? Pin
Todd Smith14-Aug-02 8:27
Todd Smith14-Aug-02 8:27 
The CComVariant class in ATL has the following functions

CComVariant(LPCSTR lpszSrc)
{
	vt = VT_EMPTY;
	*this = lpszSrc;
}

CComVariant& operator=(LPCSTR lpszSrc)
{
	USES_CONVERSION;
	InternalClear();
	vt = VT_BSTR;
	bstrVal = ::SysAllocString(A2COLE(lpszSrc));

	if (bstrVal == NULL && lpszSrc != NULL)
	{
		vt = VT_ERROR;
		scode = E_OUTOFMEMORY;
	}
	return *this;
}


Which means the only way to get it to allocate memory for a new object is to use the assignment operator. The following code produces different results

// does not allocate memory and copy
char buf[256] = "test";
CComVariant result = buf;


// allocates memory and makes a copy
char buf[256] = "test";
CComVariant result;
result = buf;


discuss!

Todd Smith
AnswerRe: Is this bad design (CComVariant) ? Pin
Shog914-Aug-02 10:01
sitebuilderShog914-Aug-02 10:01 
AnswerRe: Is this bad design (CComVariant) ? Pin
Bill Wilson14-Aug-02 10:51
Bill Wilson14-Aug-02 10:51 
GeneralRe: Is this bad design (CComVariant) ? Pin
Todd Smith14-Aug-02 12:57
Todd Smith14-Aug-02 12:57 
GeneralRe: Is this bad design (CComVariant) ? Pin
Bill Wilson14-Aug-02 13:13
Bill Wilson14-Aug-02 13:13 
GeneralRe: Is this bad design (CComVariant) ? Pin
Todd Smith14-Aug-02 13:17
Todd Smith14-Aug-02 13:17 
GeneralRe: Is this bad design (CComVariant) ? Pin
Michael Dunn14-Aug-02 15:02
sitebuilderMichael Dunn14-Aug-02 15:02 
GeneralRe: Is this bad design (CComVariant) ? Pin
Bill Wilson15-Aug-02 6:06
Bill Wilson15-Aug-02 6:06 
GeneralRe: Is this bad design (CComVariant) ? Pin
Michael Dunn15-Aug-02 7:22
sitebuilderMichael Dunn15-Aug-02 7:22 
GeneralRe: Is this bad design (CComVariant) ? Pin
Bill Wilson15-Aug-02 7:58
Bill Wilson15-Aug-02 7:58 
GeneralRe: Is this bad design (CComVariant) ? Pin
Philippe Mori15-Aug-02 10:13
Philippe Mori15-Aug-02 10:13 
GeneralRe: Is this bad design (CComVariant) ? Pin
Bill Wilson16-Aug-02 7:32
Bill Wilson16-Aug-02 7:32 
GeneralRe: Is this bad design (CComVariant) ? Pin
Philippe Mori16-Aug-02 16:49
Philippe Mori16-Aug-02 16:49 
AnswerRe: Is this bad design (CComVariant) ? Pin
Michael Dunn14-Aug-02 15:04
sitebuilderMichael Dunn14-Aug-02 15:04 
GeneralRe: Is this bad design (CComVariant) ? Pin
Philippe Mori16-Aug-02 17:15
Philippe Mori16-Aug-02 17:15 
GeneralStack Question Pin
Nick Parker14-Aug-02 8:21
protectorNick Parker14-Aug-02 8:21 
GeneralRe: Stack Question Pin
Chris Losinger14-Aug-02 8:24
professionalChris Losinger14-Aug-02 8:24 
GeneralRe: Stack Question Pin
Nick Parker14-Aug-02 8:26
protectorNick Parker14-Aug-02 8:26 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.