Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Kommunikation - zwischen zwei Freepascal-Programmen


Delete - Mi 19.10.11 15:31
Titel: Kommunikation - zwischen zwei Freepascal-Programmen
Hallo,

ich möchte gerne einen String zwischen zwei Freepascal-Programmen austauschen.

Dazu richte ich mich an diese Vorlage:
http://www.delphi-library.de/topic_Texte+Bilder+Streams+zwischen+Prozessen+austauschen_7866,0.html

Leider erscheint die Fehlermeldung.
Zitat:
unit1.pas(20,46) Error: Identifier not found "TWMCopyData"
unit1.pas(28,1) Fatal: There were 1 errors compiling module, stopping

Das bezieht sich auf diese Stelle:
type

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
  { TForm1 }

  TForm1 = class(TForm)
    Image1: TImage;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
  private
    procedure WMCopyData(var Msg: TWMCopyData); message WM_COPYDATA;  // genau hier !
  public
    { public declarations }
  end;


Es würde mich freuen, wenn mir jemand helfen könnte.

Vielen Dank !

Moderiert von user profile iconNarses: Highlight gegen Quote-Tags getauscht und diverse andere Quote-Tags gelöscht.


bummi - Mi 19.10.11 15:41

Messages in uses mit aufnehmen ....

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
  TWMCopyData = packed record
    Msg: Cardinal;
    From: HWND;
    CopyDataStruct: PCopyDataStruct;
    Result: Longint;
  end;

  WM_COPYDATA         = $004A;


Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt


Delete - Mi 19.10.11 17:12

Hallo, leider funktioniert es noch nicht.

Die vier Fehlermeldungen kommen alle in der Zeile:
"case Msg.CopyDataStruct.dwData of":
unit1.pas(53,27) Error: Illegal qualifier
unit1.pas(53,27) Hint: may be pointer dereference is missing
unit1.pas(53,27) Error: Ordinal expression expected
unit1.pas(53,27) Fatal: Syntax error, "OF" expected but "identifier DWDATA" found

Es scheint so, als ob er nur "Msg.CopyDataStruct" kennt, nicht aber "Msg.CopyDataStruct.dwData"; so interpretiere ich die Fehlermeldungen, da ja auch "OF" erwartet wird, was im case-Befehl kommt (vierte Meldung).


bummi - Mi 19.10.11 17:24

ich kann zu Freepascal nichts sagen, vielleicht fehlt Dir sowas?


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
type
  { lParam of WM_COPYDATA message points to... }
  PCopyDataStruct = ^TCopyDataStruct;
  {$EXTERNALSYM tagCOPYDATASTRUCT}
  tagCOPYDATASTRUCT = packed record
    dwData: DWORD;
    cbData: DWORD;
    lpData: Pointer;
  end;
  TCopyDataStruct = tagCOPYDATASTRUCT;
  {$EXTERNALSYM COPYDATASTRUCT}
  COPYDATASTRUCT = tagCOPYDATASTRUCT;