User forums > Help

Why is this wrong?

(1/2) > >>

Avan:
Why is this a binary operation?

--- Code: ---wxString Dir = _T("X:\\") + _T("Foldername");

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

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

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

--- End code ---

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

--- Code: ---#define _T(n) _(n)
--- End code ---
or something like this

--- Code: ---#define _T(n) _TCHAR(n)
--- End code ---
what translates to

--- Code: ---#define _TCHAR(n) wchar_t(n)
--- End code ---

so your final line of code is

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

--- End code ---
what is like


--- Code: ---wxString Dir = char[4] + char[11];

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


Avan:
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:

--- Code: ---wxString Dir.append(_T("X:\\"), _T("Foldername"));
--- End code ---
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:

--- Quote ---Thanks, and I will NEVER ask for help in the Help forum again. What w.a.s I thinking...
--- End quote ---
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 ---
--- Quote ---if you are using wx3.... you can omit the _T part, if you do not plan to translate your application.

--- End quote ---

Good to know.
--- End quote ---

Navigation

[0] Message Index

[#] Next page

Go to full version