Forum: Win32/Win64 API (native code)
Delphi
by alzaimar,
28. Dez 2008
Was ist der Vorteil von einem 'Array of PChar' ggü einem 'Array Of String'. Und wieso sollte er sich mit Named Pipes rumschlagen?
Nimm einfach ein Byte-Array und vergrößere es ggfs.
Forum: Win32/Win64 API (native code)
Delphi
by alzaimar,
28. Dez 2008
Bei Copydata gibst Du einen Speicherbereich und eine Länge an. Wie Du die Daten dort hineinschreibst, bleibt dir überlassen. Wenn es nur ein einziger String ist, dann geht das so:
CPData.dwData := 0;
CPData.cbData := Length (MyString);
CPData.lpData := @MyString;
SendMessage(hMainFormWnd, WM_COPYDATA, WPARAM(Application.Handle), LPARAM(@CPData));
Wenn man mehr verschicken will, z.B....
Forum: Win32/Win64 API (native code)
Delphi
by alzaimar,
28. Dez 2008
Du vielleicht nicht, aber dein Delphi. Oder hast Du auch kein Delphi? Alternativ kannst du auch ein Byte-Array nehmen und dort die zu übertragende Information hineinkopieren. Und Bytearrays hat nun wirklich Jeder.
Forum: Win32/Win64 API (native code)
Delphi
by alzaimar,
28. Dez 2008
Ich würde das ganze über einen Memorystream lösen.
Schreiben:
1. Länge des Strings als 4-Byte-Integer in den Stream schreiben
2. Den Inhalt des Strings
3. In die Copydata-Struktur die Länge des Streams (Stream.Size) sowie die Adresse (Stream.Memory)
4. WM_COPYDATA-Message verschicken
Lesen:
1. MemoryStream instanitiieren und Zeiger zuweisen
2. 4-Byte Integer lesen und einen String mit...