[C++]Memory problem

12/16/2010 13:59 .BritainAndy#1
Moin Com,
ich hab mir jetzt mal für simples memory editing in c++ ein Opferprogramm und ein Taeter programm erstellt.

Jeodch hab ich ein fehler beim Compilieren des Taeter programms


und jz opfer source (der funzt)

12/16/2010 14:24 MoepMeep#2
Kompiliert einwandfrei unter Visual Studio 2008.
12/16/2010 16:38 .BritainAndy#3
Ich hab auch VS 2008.
Hier meine Fehlermeldungen seitens Compile

1>Taeter.cpp
1>c:\users\tothepub\documents\visual studio 2008\projects\taeter\taeter\taeter.cpp(11) : error C2664: 'FindWindowW': Konvertierung des Parameters 2 von 'const char [6]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>c:\users\tothepub\documents\visual studio 2008\projects\taeter\taeter\taeter.cpp(14) : error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char [46]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>c:\users\tothepub\documents\visual studio 2008\projects\taeter\taeter\taeter.cpp(23) : error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char [32]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>c:\users\tothepub\documents\visual studio 2008\projects\taeter\taeter\taeter.cpp(31) : error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char [24]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>c:\users\tothepub\documents\visual studio 2008\projects\taeter\taeter\taeter.cpp(35) : error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char [32]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
12/16/2010 16:42 Gertos#4
const char = 1 Byte / Character
LPCWSTR = 2 Byte / Character

Unter VS2008 ist wohl standartmäßig Unicode aktive, und das macht jede menge Probleme.

Schreib um deine Strings mal sowas:
_T("Hallo Welt ")
12/16/2010 16:57 MrSm!th#5
hm evtl. mal fehlermeldung lesen?

nimm entweder FindWindowA usw. oder schreib vor die "" ein L, also L"bla"
12/16/2010 17:04 .BritainAndy#6
edit:

klappt, hab vor jeden String ein L gemacht.

Wieso ist das denn jetzt so mit dem L?
12/16/2010 18:07 Bot_interesierter#7
[Only registered and activated users can see links. Click Here To Register...]
Was hält dich eigentlich davon ab den Sticky Thread bezüglich Kompilerfehlern zu lesen?
Mal im ernst, wir hatten diesen Thread bestimmt schon tausendmal, jedes einzelne mal hat waren das Problem Stringliterale mit falschem Encoding.
Sind hier eigentlich alle zu blöde um ersteinmal zu lesen was sie tun?
Jedes verdammte tutorial zu VisualStudio erklärt was es mit Unicode aufsich hat und dennoch kommt dieser Thread immer und immer wieder.

Unter 100 Threads ist vielleicht einer mit einer vernünftigen Frage, der noch dazu halbwegs lesbar ist, der rest der Threads ist entweder nicht zu entziffern oder die Antwort erübrigt sich ohnehin.

Und für dich .BritainAndy der L Prefix vor einem Stringliteral sagt VisualStudio dass es sich um einen Unicodestring handelt und somit um ein const wchar*, wenn ein Stringliteral, also eine Zeichenkette inerhalb von "", ohne den L Prefix geschrieben wird, dann wird dieser IMMER als const char* interpretiert.
Es gibt auch noch das TEXT Macro welches automatisch den L Prefix setzt, wenn das Projekt auf UNICODE eingestellt ist.
Wenn du also ein Projekt hast dass du mit und ohne Unicode übersetzten willst empfiehlt es sich das TEXT Macro zu verwenden (_T ist eine Kurzform für TEXT in VisualStudio).
12/16/2010 18:15 MrSm!th#8
und mehr gibts nicht mehr zu sagen

#zu