Find-Window Error

09/12/2012 17:38 Mr.Plow#1
Hi epvpers,

ich beschäftige mich zurzeit ein bisschen mit Speicher auslesen etc.
Euer Forum hat mir dabei übrigens mit den diversen TUTs sehr geholfen ;D
Als ich nun von der Konsolen-Anwendung zur Forms-Anwendung wechseln wollte, bekam ich plötzlich mit gleichem Code folgende Fehlermeldung:

"error C2664: 'FindWindowW': Konvertierung des Parameters 2 von 'const char [15]' in 'LPCWSTR' nicht möglich"

->Sie bezieht sich auf folgende Zeile:

hWnd = FindWindow(0,"Forsaken World"); //->hWnd ist vom Typ HWND^^

Eingebunden hab ich folgendes:

#include "stdafx.h"
#include "Form1.h"
#include <windows.h>
#include <iostream>
using namespace std;

Ich hoffe Ihr könnt mir helfen :) Danke im Vorraus!
09/12/2012 18:10 Nightblizard#2
Code:
auto* a =  L"Ich bin ein wide string!";
auto* b =   "Ich bin ein normaler string!;

//Noch nicht von VS unterstützt, aber z.B. vom gcc:
auto* c = u8"Ich bin ein UTF-8 string!";
auto* d =  u"Ich bin ein UTF-16 string!";
auto* e =  U"Ich bin ein UTF-32 string!";
Alternativ tchar ins Projekt einbinden und das Makro _T verwenden, dann kannst du sogar nach belieben zwischen Multibyte und Unicode wechseln:

Code:
#include <string>
#include <tchar.h>

int main()
{
     TCHAR* a = _T("Yay!");

     typedef std::basic_string<TCHAR> tstring;
     tstring tstr = _T("std::string unabhängig vom Zeichensatz!");
}
Du nutzt einfach den falschen Zeichensatz.
Schau dir diesen Artikel an, da wird das ganz gut erklärt:
[Only registered and activated users can see links. Click Here To Register...]
09/12/2012 23:49 tnd0#3
Er wollte wissen wo die nächste links ist, nicht wo er nen stadtplan findet.

Code:
#include <iostream>
#include <Windows.h> //für type WCHAR

typedef const WCHAR *LPCWSTR;
void someLPCWSTRfunc( LPCWSTR SomeVar )
{
	
}

void main () {
	someLPCWSTRfunc( L"Some text" );
}
Code:
someLPCWSTRfunc( [B]L[/B]"Some text" );
09/13/2012 17:55 .SkyneT.#4
Oder, unter Visual Studio, den Zeichensatz auf Multibyte stellen.