Re: String problem VS 2005
- From: David Wilkinson <no-reply@xxxxxxxxxxxx>
- Date: Tue, 11 Sep 2007 16:51:15 -0400
SQACSharp wrote:
How can I "convert" from a char to a string. I'm trying to display in
the console the Classname and the text in the notepad window.
Start notepad and type some text before running the following code.
#include <windows.h>
#include <iostream>
#include <winuser.h>
using namespace System;
int main()
{
HWND hNotepad, hEdit;
hNotepad = FindWindow(L"Notepad", NULL);
hEdit = FindWindowEx(hNotepad, NULL, L"edit", NULL);
SetForegroundWindow(hNotepad);
static char ClassName[51];
GetClassName(hNotepad,(LPTSTR) ClassName, 50 );
std::cout << "ClassName = " << ClassName; // *** NOT WORKING ***
int iLength = (int)::SendMessage(hEdit, WM_GETTEXTLENGTH, 0, 0);
TCHAR * textData = (TCHAR *) malloc((iLength + 1) * sizeof(TCHAR));
SendMessage(hEdit, WM_GETTEXT, iLength+1, (LPARAM)textData);
std::cout << "Text captured from notepad = " << textData; // *** NOT
WORKING ***
free((void *) textData);
}
SQACharp:
In VS 2005 projects are Unicode by default. This means you must use L"" and wchar_t everywhere. Alternatively, use _T("") and TCHAR everywhere, and your code will compile as either ANSI or UNICODE.
Right now, your code is a mix of narrow, wide and agnostic strings.
You do not say what "NOT WORKING" means, but one thing you should do is check that hNotepas and hEdit are valid windows.
--
David Wilkinson
Visual C++ MVP
.
- Follow-Ups:
- Re: String problem VS 2005
- From: SQACSharp
- Re: String problem VS 2005
- References:
- String problem VS 2005
- From: SQACSharp
- String problem VS 2005
- Prev by Date: String problem VS 2005
- Next by Date: Re: String problem VS 2005
- Previous by thread: String problem VS 2005
- Next by thread: Re: String problem VS 2005
- Index(es):
Relevant Pages
|
Loading