Re: String problem VS 2005



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
.



Relevant Pages

  • String problem VS 2005
    ... How can I "convert" from a char to a string. ... the console the Classname and the text in the notepad window. ...
    (microsoft.public.dotnet.languages.vc)
  • Question about unicode in internet explorer and notepad
    ... I am a bit intrigued as to why unicode pages in internet explorer ... Then, I save notepad, but when I do so I recieve a message ... A notepad window with the html source of the previous text ...
    (microsoft.public.win2000.general)

Loading