Grazie a tutti.

Alla fine ho risolto in modo simile a questo:

codice:
LPCTSTR l1 = "str1";
LPCTSTR l2 = "str2";

char s[256] = "";

strcat(s, (const char *)l1);
strcat(s, (const char *)l2);

LPCTSTR final = s;
Poco intuitivo però funziona!
Quando dava errore passavo gli LPCTSTR anche nel primo parametro della strcat.