Click here to Skip to main content
15,917,320 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
AnswerRe: A question on memory allocation... Pin
Mark Salsbery27-Nov-07 15:30
Mark Salsbery27-Nov-07 15:30 
I see a few problems here...
#ifdef _UNICODE
    CString strText = (This piece of code returns a CStringA from the back-end of my program) <font color="Red"><-- assigning a CStringA to a CString shouldn't compile - mismatched types</font>

    if (strText.GetLength() <= 0)
       return false;

    char *convertThis = new char(strText.GetLength()); <font color="Red"><-- what about +1 for the null terminator?</font>
    sprintf(convertThis, "%s", strText); <font color="Red"><-- _UNICODE is defined, so strText is a wchar_t type string - this copy to char is invalid</font>
    int nLen = lstrlenA(convertThis);
    BSTR unicodeStr = SysAllocStringLen(NULL, nLen);  <font color="Red"><-- why BSTR?  A wchar_t array is the appropriate type for unicode - MultiByteToWideChar() takes a LPWSTR, not a BSTR</font>
    MultiByteToWideChar(CP_ACP, 0, convertThis, nLen, unicodeStr, nLen); <font color="Red"><-- The original CString was already Unicode...this conversion is unnecessary</font>
    m_EditControl.SetWindowText(unicodeStr);
    SysFreeString(unicodeStr);
    delete convertThis;
#else
If you just need to convert a CStringA to a CString, you can just do this:

<font color="Green">//#ifdef _UNICODE  The following works for both unicode and non-unicode builds</font>
    CStringA strText = (This piece of code returns a CStringA from the back-end of my program)

    CString strTextGeneric(strText);

    m_EditControl.SetWindowText(strTextGeneric);
<font color="Green">//#else</font>
Mark



Mark Salsbery
Microsoft MVP - Visual C++

Java | [Coffee]

GeneralRe: A question on memory allocation... Pin
KellyR28-Nov-07 3:31
KellyR28-Nov-07 3:31 
GeneralRe: A question on memory allocation... Pin
Mark Salsbery28-Nov-07 5:16
Mark Salsbery28-Nov-07 5:16 
GeneralRe: A question on memory allocation... Pin
KellyR28-Nov-07 5:36
KellyR28-Nov-07 5:36 
GeneralRe: A question on memory allocation... Pin
Mark Salsbery28-Nov-07 5:39
Mark Salsbery28-Nov-07 5:39 
QuestionRe: A question on memory allocation... Pin
David Crow27-Nov-07 15:41
David Crow27-Nov-07 15:41 
AnswerRe: A question on memory allocation... Pin
Stephen Hewitt27-Nov-07 16:32
Stephen Hewitt27-Nov-07 16:32 
GeneralRe: A question on memory allocation... Pin
KellyR28-Nov-07 3:44
KellyR28-Nov-07 3:44 
AnswerRe: A question on memory allocation... Pin
Michael Dunn27-Nov-07 16:37
sitebuilderMichael Dunn27-Nov-07 16:37 
QuestionQuestion on passing data to from threads Pin
Rhymhoont27-Nov-07 10:37
Rhymhoont27-Nov-07 10:37 
AnswerRe: Question on passing data to from threads Pin
JudyL_MD27-Nov-07 10:48
JudyL_MD27-Nov-07 10:48 
GeneralRe: Question on passing data to from threads Pin
Rhymhoont27-Nov-07 11:47
Rhymhoont27-Nov-07 11:47 
AnswerRe: Question on passing data to from threads Pin
David Crow28-Nov-07 2:57
David Crow28-Nov-07 2:57 
GeneralRe: Question on passing data to from threads Pin
JudyL_MD28-Nov-07 6:42
JudyL_MD28-Nov-07 6:42 
QuestionDrop down list behaviour in comboboxes Pin
Wxffles27-Nov-07 9:21
Wxffles27-Nov-07 9:21 
QuestionRe: Drop down list behaviour in comboboxes Pin
David Crow27-Nov-07 10:03
David Crow27-Nov-07 10:03 
QuestionRe: Drop down list behaviour in comboboxes [modified] Pin
Wxffles27-Nov-07 11:46
Wxffles27-Nov-07 11:46 
AnswerRe: Drop down list behaviour in comboboxes Pin
led mike27-Nov-07 10:08
led mike27-Nov-07 10:08 
QuestionMenu Item not being enabled?? Pin
Kiran Satish27-Nov-07 8:14
Kiran Satish27-Nov-07 8:14 
QuestionRe: Menu Item not being enabled?? Pin
CPallini27-Nov-07 9:48
mveCPallini27-Nov-07 9:48 
AnswerRe: Menu Item not being enabled?? Pin
Kiran Satish27-Nov-07 10:38
Kiran Satish27-Nov-07 10:38 
AnswerRe: Menu Item not being enabled?? Pin
Kiran Satish28-Nov-07 5:04
Kiran Satish28-Nov-07 5:04 
QuestionCRuntimeClass - basic question - class access?? Pin
Vaclav_27-Nov-07 6:25
Vaclav_27-Nov-07 6:25 
QuestionRe: CRuntimeClass - basic question - class access?? Pin
Mark Salsbery27-Nov-07 6:51
Mark Salsbery27-Nov-07 6:51 
AnswerRe: CRuntimeClass - basic question - class access?? Pin
Vaclav_27-Nov-07 7:36
Vaclav_27-Nov-07 7:36 

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.