EDIT: Doffe Frage, kann es sein, das ich erst irgendwie meiner WndProc (z.b. dem Programm) Rechte geben muss um auf den Speicher von der
DLL-Variable zuzugreifen? Anscheinend macht die normale WndProc noch irgendwas, um in den Speicherbereich von der Variablen schreiben zukönnen. Oder irre ich da?
Nicht der
DLL, aber dem Prozess der die
DLL benutzt und im Endeffekt
SendMessage aufruft. Seit Vista gibt es da gewisse Mechanismen. Welches System verwendest du denn, gibt es 32/64bit-Schranken und vor allem laufen die Prozesse mit gleicher Privilegienstufe ("Elevation")?
Stichworte:
UIPI (und
ChangeWindowMessageFilterEx),
Privilege Isolation,
Integrity Levels
Ich hab schon viel von Pipes gehört usw. , aber wie gesagt nur gehört. Ob das damit geht, weis ich auch nicht. Hab grad nen bischen mit GlobalAlloc und VirtualAlloc getestet, auch bei GlobalAlloc, den
Handle an die andere übergeben, kein Unterschied.
Die funktionieren nur innerhalb des gleichen Prozesses. Ansonsten:
VirtualAllocEx
Ich werde wohl schauen müssen, ob ich irgendwie eine MessageLoop mit einem "unsichtbaren" Fenster in der
DLL erzeuge und hoffen, dass ich dan mit WM_COPYDATA die Daten rüberbekomme.
Ich dachte die
DLL schickt die Nachricht? Warum brauchst du dann eine Nachrichtenschleife in der
DLL?
Ich wünschte mir, daß die "Generation Google" sich mal wieder in ein Problem verbeißen würde bis es gelöst ist, anstatt auszuweichen oder aufzugeben