Und genau das ist falsch. Casten bewirkt keine magische Typumwandlung. Casten ist rohe Gewalt.
Nein, das habe ich doch im letzten Beitrag erklärt. Mit dem Cast erreichst du nur, dass der Compiler den Mund hält. Der Code bleibt so falsch, wie er war.
Casts braucht man nur sehr selten. Leider gewöhnen sich Anfänger oft an, Compilefehler wegen unpassender Typen durch Casts zu "beheben". Gewöhn dir diesen Reflex "Typfehler -> Casten" bitte ganz schnell wieder ab.
Dein Zeichenkettenliteral ist ein Array von const char. Du brauchst LPCTSTR, das ist ein Zeiger auf const TCHAR. TCHAR ist, abhängig davon, ob du Unicode benutzt oder nicht, entweder char oder wchar_t bzw. WCHAR. In deinem Fall ist Unicode definiert, sonst würde der Compiler keine Fehler ausgeben, wenn du den Code weglässt.
Benutzt das _T-Makro für deine Stringliterale.