Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Prism external-Deklarationen (https://www.delphipraxis.net/62771-external-deklarationen.html)

Darth_Metaler 9. Feb 2006 12:02


external-Deklarationen
 
hey ihrs ;)
hab ein Problem, und zwar soll ich in .NET eine Win32-DLL aufrufen.

In der Borland-Hilfe hab ich dazu folgenden Beitrag gefunden:

Zitat:

Zitat von Delphi-Hilfe
[DllImport('user32.dll')]
function MessageBeep(uType : LongWord) : Boolean; external;

jetzt hab ich folgenden Quellcode...

Delphi-Quellcode:
type
  _1A_Archive = class(System.Object)
  {...}
  [DllImport('A1_Archive4Client.dll', EntryPoint='A1AC_Create')]
  function _Create: Integer; external;
  {...}
end;
...aber mein Compiler meldet mir immer folgende Fehler:
Zitat:

Zitat von Delphi
[Fehler] A1_Archive4Client_Intf.pas(186): E2169 Felddefinition nicht erlaubt nach Methoden oder Eigenschaften
[Fehler] A1_Archive4Client_Intf.pas(189): E2029 ',' oder ':' erwartet, aber 'CONSTRUCTOR' gefunden
[Fehler] A1_Archive4Client_Intf.pas(186): E2065 Ungenügende Forward- oder External-Deklaration: '_1A_Archive._Create'
[Hinweis] A1_Archive4Client_Intf.pas(186): H2219 Das private-Symbol 'external' wurde deklariert, aber nie verwendet
[Hinweis] A1_Archive4Client_Intf.pas(188): H2219 Das private-Symbol 'public' wurde deklariert, aber nie verwendet
[Hinweis] A1_Archive4Client_Intf.pas(189): H2219 Das private-Symbol 'Create' wurde deklariert, aber nie verwendet
[Fataler Fehler] Archiv4ClientTest.dpr(15): F2063 Verwendete Unit 'A1_Archive4Client_Intf.pas' kann nicht compiliert werden

wisst ihr, woran das liegen könnte? darf ich external vlt nur außerhalb einer Klasse benutzen oder wie?

MfG Pascal

Darth_Metaler 9. Feb 2006 12:26

Re: external-Deklarationen
 
Zitat:

Zitat von Darth_Metaler
darf ich external vlt nur außerhalb einer Klasse benutzen oder wie?

genau das war mein problem, bin selbst drauf gekommen :wall:
außerhalb der klasse funzts, auch wenns in VB.NET innerhalb der klasse war...

Heffalump 28. Mai 2006 21:29

Re: external-Deklarationen
 
folgendes Beispiel läßt sich mit Delphi 2006 erstellen.

Delphi-Quellcode:
unit Beispiel;

interface

uses System.Runtime.InteropServices;

type
  _1A_Archive = class(System.Object)
  {...}
  [DllImport('A1_Archive4Client.dll', EntryPoint='A1AC_Create')]
  class function _Create: Integer; static;
  {...}
end;

implementation

{ _1A_Archive }

class function _1A_Archive._Create: Integer;
begin
end;

end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:40 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