News:

Accounts with zero posts and zero activity during the last months will be deleted periodically to fight SPAM!

Main Menu

Why is this wrong?

Started by Avan, March 25, 2021, 01:23:01 PM

Previous topic - Next topic

Avan

Why is this a binary operation?
wxString Dir = _T("X:\\") + _T("Foldername");

error: invalid operands of types 'const wchar_t [4]' and 'const wchar_t [9]' to binary 'operator+'

And why do these proper string concats not ptoduce the same error?

wxString name = _T("Foldername");
wxString Dir  = _T("H:\\") + name;
wxString Dir  = file.GetPath() + _T("Foldername");

BlueHazzard

In general this is not a general programming forum. This is a codeblocks forum, so this is the wrong place for this question.

Disclaimer, this is more pseudo code than actual code:
In your case i think _T defines to something like this
#define _T(n) _(n)
or something like this
#define _T(n) _TCHAR(n)
what translates to
#define _TCHAR(n) wchar_t(n)

so your final line of code is

wxString Dir ={'X', ':' + '\\'} + {'F','o','l','d','e','r','n','a','m','e'};

what is like


wxString Dir = char[4] + char[11];

and adding arrays is not defined...
what is a binary operation, normally



Avan

#2
Ah, I was wondering why there were [n] brackets but it didn't sink in.

It's actually:
#define _T(x) __T(x)

Solved it with:
wxString Dir.append(_T("X:\\"), _T("Foldername"));
Edit: Spoke too soon. The compiler didn't complain but appending two stings this way crash CB when executed. I had to use an assign and then append the next.

An intermediate variable also did the trick.

Thanks, and I will NEVER ask for help in the Help forum again. What w.a.s I thinking... ;D

BlueHazzard

QuoteThanks, and I will NEVER ask for help in the Help forum again. What w.a.s I thinking...
Every question related to codeblocks is welcome :)

if you are using wx3.... you can omit the _T part, if you do not plan to translate your application.

Avan

Quote from: BlueHazzard on March 25, 2021, 05:26:42 PM
Quoteif you are using wx3.... you can omit the _T part, if you do not plan to translate your application.

Good to know.

Miguel Gimenez