AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi [Indy] TIdTCPServer in einer DLL verwenden?!
Thema durchsuchen
Ansicht
Themen-Optionen

[Indy] TIdTCPServer in einer DLL verwenden?!

Ein Thema von GimbaR · begonnen am 30. Sep 2005 · letzter Beitrag vom 30. Sep 2005
Antwort Antwort
Benutzerbild von GimbaR
GimbaR

Registriert seit: 17. Apr 2004
Ort: Weltmetropole Rostock ;)
134 Beiträge
 
Delphi 2006 Professional
 
#1

Re: [Indy] TIdTCPServer in einer DLL verwenden?!

  Alt 30. Sep 2005, 09:47
So, hab das mal jetzt so versucht umzusetzen wie ich es verstanden hab.
Vorlage für mich war diese Vorlage

daraufhin habe ich das daraus gemacht:
Delphi-Quellcode:
library gen_remamp;

{$R *.res}

uses
  Windows, SysUtils, Forms, IdBaseComponent, IdComponent, IdTCPServer;

type
  PGeneralPlugin = ^TGeneralPlugin;
  TGeneralPlugin = record
    Version: Integer;
    Description: PChar;
    InitProc: procedure; cdecl;
    ConfigProc: procedure; cdecl;
    QuitProc: procedure; cdecl;
    hwndParent: THandle;
    DllInstance: THandle;
  end;
  TCPServer1 = class(TIdTCPServer)
    private
      procedure TCPServer1Execute(AThread: TIdPeerThread);
    public
      constructor CreateServer;
  end;

var
  PluginInfo: TGeneralPlugin;
  HookHandle: Cardinal = 0;
  hWinAmp: HWnd;

const
  WM_USER = $0400;
  WM_WA_IPC = $0400;
  WM_COMMAND = $0111;
  IPC_PLAYFILE = 100;
  IPC_STARTPLAY = 102;
  IPC_SETPLAYLISTPOS = 121;
  IPC_GetListPos = 125;
  IPC_GetPlaylistFile = 211;
  IPC_UPDTITLE = 243;
  IPC_PlayButton = 40045;

constructor TCPServer1.CreateServer;
begin
  //inherited Create;
  OnExecute:= TCPServer1Execute;
  Bindings:= nil;
  CommandHandlers:= nil;
  Greeting.NumericCode:= 0;
  MaxConnectionReply.NumericCode:= 0;
  DefaultPort:= 35600;
  //Active:= true;
end;

procedure TCPServer1.TCPServer1Execute(AThread: TIdPeerThread);
begin
  MessageBox(0, PChar(AThread.Connection.ReadLn), 'Test', MB_OK);
end;

procedure InitPlugin; cdecl
var
  position: Integer;
begin
  {//Start
  position:= 1;
  SendMessage(hWinAmp,WM_WA_IPC,position,IPC_SETPLAYLISTPOS);
  SendMessage(hWinAmp,WM_WA_IPC,0,IPC_PLAYFILE);
  //SendMessage(hWinAmp,WM_WA_IPC,0,IPC_UPDTITLE);
  //SendMessage(hWinAmp,WM_WA_IPC,0,IPC_STARTPLAY);}

  // Test des Indy-Clients
end;

procedure ConfigPlugin; cdecl
begin
    MessageBox(0, 'RemoteAmp - Control WinAmp via TCP/IP'     + #13 +
                                                                #13 +
                  'coded by GimbaR',
                  'RemAmp - 09/05', mb_ok);
end;

procedure QuitPlugin; cdecl;
begin
  //Disconcect
end;

function GetPluginInfo: PGeneralPlugin;
begin
  with PluginInfo do
    begin
      Version:= $10;
      Description:='RemAmp - remote WinAmp [TCP/IP] - by GimbaR';
      InitProc:= InitPlugin;
      ConfigProc:= ConfigPlugin;
      QuitProc:= QuitPlugin;
      hwndParent:= 0;
      DllInstance:= hInstance;
    end;
  result:= @PluginInfo;
  hWinAmp:= FindWindow('Winamp v1.x', nil);
  // Einstellungen des Indy-Servers setzen
  TCPServer1:= TIdTCPServer.Create(Application); //<-- hier
end;


exports
  GetPluginInfo name 'winampGetGeneralPurposePlugin';

end.
Doch leider kommt an der stelle
TCPServer1:= TIdTCPServer.Create(Application); die Fehlermeldung
Zitat:
Der linken Seite kann nichts zugewiesen werden
Wenn ich jetzt diese Zeile auskommentiere, wird zwar alles fehlerfrei compiliert, jedoch wird dann kein der TCPServer1 erstellt.
Jonas
Bei dem Tempo ist es nur noch eine Frage der Zeit bis SSchäuble verlangt allen deutschen Bürgern ein Halsband zur ständigen Überwachung zu verpassen...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz