std::string zu LPVOID (const char*->LPVOID)
-
Hey,
weiß jemand wie ich einen std::string zu LPVOID Konvertieren kann?
Das ist in CLI weil ich das ganze mit Forms mache...Hab schon das hier ausprobiert:
LPVOID TRUEADRESS=reinterpret_cast<LPVOID>(Adresse.c_str());
funktioniert jedoch nicht...
Bei Google finde ich auch irgendwie nix.Schonmal danke für die Antworten
-
Du kannst keinen std::string nach LPVOID "konvertieren"...
Und wenn Du schon C++/CLI verwendest, dann solltest Du kein std::string verwenden!
-
Jochen Kalmbach schrieb:
Du kannst keinen std::string nach LPVOID "konvertieren"...
Und wenn Du schon C++/CLI verwendest, dann solltest Du kein std::string verwenden!
Hmm, das dumme ist nur das ich in einer static void nicht
die Adresse eines nicht statischen Datenmembers oder einer Methode eines verwalteten Typs übernehmen kann.Die Adresse eines nicht statischen Datenmembers oder einer Methode eines verwalteten Typs kann nicht übernommen werden
Und da ich in dem Thread
if(WriteProcessMemory(hProcess,(LPVOID)Adresse.c_str(),&value,sizeof(value),0)!=0)
Das hier durchführen will kann ich es nicht übernehmen.
und mit std::string schafft er es auch nicht so.. da oben kommt zwar keine fehlermeldung aber funktionieren tut es nicht...Wie könnte man das noch machen? Ist ja Hexadezimal die Adresse...
//Edit:
So habs jetzt schon selber hinbekommen...
-
Poste doch bitte Deine Lösung.
Könnte ja vorkommen, dass jemand mal das gleiche Problem hat.Gruß,
Doug_HH
-
Die beste Lösung ist:
std::string szString; // woher der auch immer kommen mag... char *sz = strdup(szString.c_str()); // pass the "sz" to to void* parameter... void* p = sz;
Natürlich solte man später nicht vergessen den String wieder freizugeben...
-
Jochen Kalmbach schrieb:
Die beste Lösung ist:
Obwohl nicht ganz offensichtlich aber das ist nicht die Lösung für sein problem nehme ich mal ganz stark an. Er verwendet WriteProcessMemory daher gehe ich mal ganz stark davon aus das er in "Adresse" eine Hexadezimal Repräsentation der Speicheradresse hat an die er etwas schreiben möchte. Was er braucht wäre eine Konvertierung in einen Zeiger der auf diese besagte Speicheradresse zeigt.