CString filestr = "File";
and put that in the last parameter and it should be ok.
LP means pointer. CW means wide char. So it wants a wide char pointer C style string here ... you get used to reading this gibberish after a while ... the M$ CString class is somewhere between a real string (std::string) and a C string (char array) and it will do what needs doing for you here while using their type that works with their weird functions.
I think there is a prefix you could add instead, _T or something weird, eg _T("file") or something like that can force the normal const char* to wide and it may work (if it accepts const in the parameter).
You are compiling as Unicode - hence the requirement for a LPCWSTR for the "file" param. AppendMenu() (and many other windows APIs) have different versions depending upon whether unicode is used or not (default is used). There's a couple of options here:
1) Specify "file" as a unicode string by the L prefix:
AppendMenu(hMenu, MF_STRING, NULL, L"File");
or use the _T macro to specify either unicode or ascii as per whether unicode is being used or not: