Look at the definitions in the headers. GetWindowText is actually a macro that points to GetWindowTextA/W depending on compile options. This is why all the VB definitions have A appended to them

Yes, you should use TCHAR, _T("string"), and all the rest of the nice gibberish that comes with internationalisation

Are you sure that the window you specified exists?