I am trying to modify an old plugin to create a new one (in C++ and Visual Studio 2019). When I compile I get the following error marking TEXT in red.
E0144: A value of type "const wchar_t *" cannot be used to initialize an entity of type LPTSTR
LPTSTR process_name = TEXT("rFactor2.exe");
module_address = GetModuleBase(process_name, pID);
I investigated and saw a similar post suggesting this:
LPTSTR process_name = foo(TEXT("rFactor2.exe"));
And now I get the following error:
E0020: identifier "foo" is not defined
Could someone tell me how can I create the variable in LPTSTR format (it's the type that GetModuleBase
expects)?
LPTSTR
is defined asTCHAR*
. What you want is a const pointer. You can useLPCTSTR
, which is defined asTCHAR const*
:If your function requires a non-const pointer, you can create a copy:
Note that life time of the string literal and the array are not the same.
Considering you are working with legacy code, it is possible that your functions take non-const pointers and don't modify them. If you are certain about that and can't go ahead and fix those function signatures to be const-correct, you can use a type cast. Do this only as a last resort:
Recommended reading: