Code:
IntPtr HTags = IntPtr.Zero; // *1
public static extern HTags TagsLibrary_Create(); // *2
*1 deklariert eine private Variable 'HTags' vom Typ 'Integer' und weißt ihr einen Wert zu.
*2 deklariert eine statische Methode 'TagsLibrary_Create()' mit dem Rückgabetype... 'HTags'.
Nun ist 'HTags' eine private Variable, wird aber dort verwendet, wo eigentlich ein Typ stehen soll.
In Delphi wäre das z.B.
Delphi-Quellcode:
Var
HTags : PInteger = Nil;
Function TagsLibrary_Create() : HTags;
Das ergibt doch keinen Sinn.
Was Du willst (TypeDef) lässt sich in C# nicht machen. Du kannst am Anfang der Datei zwar 'using HTags = IntPtr;' schreiben, aber das gilt nur für die Datei. Wäre 'IntPtr' eine Klasse, könntest Du 'class HTags : IntPtr{}' verwenden, aber 'IntPtr' ist ein struct (Record) und damit geht inheritance nicht.
Verwende einfach IntPtr statt HTags.