EngelsFransSpaans

OnWorks-favicon

pidlp - Online in de cloud

Voer pidlp uit in OnWorks gratis hostingprovider via Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

Dit is de opdracht pidlp die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

PROGRAMMA:

NAAM


pidl - Een IDL-compiler geschreven in Perl

KORTE INHOUD


pidl-help

pidl [--outputdir[=OUTNAME]] [--includedir DIR...] [--parse-idl-boom] [--dump-idl-boom]
[--dump-ndr-tree] [--header[=OUTPUT]] [--python[=OUTPUT]] [--ndr-parser[=OUTPUT]]
[--client] [--server] [-warn-compat] [--stil] [--uitgebreid] [--sjabloon]
[--ws-parser[=OUTPUT]] [--diff] [--dump-idl] [--tdr-parser[=OUTPUT]]
[--samba3-ndr-client[=OUTPUT]] [--samba3-ndr-server[=OUTPUT]] [--typelib=[OUTPUT]]
[ .idl]...

PRODUCTBESCHRIJVING


pidl is een IDL-compiler geschreven in Perl die enigszins compatibel moet zijn met de midl
compiler. IDL is een afkorting voor "Interface Definition Language".

pidl kan stubs genereren voor DCE/RPC-servercode, DCE/RPC-clientcode en Wireshark
dissectors voor DCE/RPC-verkeer.

IDL-compilers zoals pidl nemen een beschrijving van een interface als invoer en gebruiken deze om
genereer C (hoewel ondersteuning voor andere talen later kan worden toegevoegd) code die deze kan gebruiken
interfaces, mooie printgegevens die met deze interfaces worden verzonden, of zelfs Wireshark . genereren
dissectors die gegevens kunnen ontleden die door deze interfaces over de draad worden verzonden.

pidl neemt IDL-bestanden in hetzelfde formaat als door midl wordt gebruikt, converteert het naar een .pidl-bestand
(die pidl's interne representatie van de interface bevat) en kan dan genereren
welke uitvoer je ook nodig hebt. .pidl-bestanden mogen alleen voor foutopsporingsdoeleinden worden gebruikt. Schrijven
uw interfacedefinities in .idl-indeling.

Het doel van pidl is om een ​​IDL-compiler te implementeren die kan worden gebruikt tijdens het ontwikkelen van de RPC
subsysteem in Samba (voor zowel marshalling/unmarshalling als debugging-doeleinden).

OPTIES


--help
Lijst met beschikbare opties weergeven.

--versie
Toon pidl-versie

--uitvoermap UITNAAM
Schrijf uitvoerbestanden naar de opgegeven map. Standaard ingesteld op de huidige map.

--inbegrepen DIR
Voeg DIR toe aan het zoekpad dat door de preprocessor wordt gebruikt. Deze optie kan worden gespecificeerd
meerdere keren.

--parse-idl-boom
Lees de interne boomstructuur van invoerbestanden in plaats van aan te nemen dat ze IDL bevatten.

--dump-idl
Genereer een nieuw IDL-bestand. Bestand krijgt de naam OUTNAME.idl.

--koptekst
Genereer een C-headerbestand voor de opgegeven interface. De bestandsnaam is standaard OUTNAME.h.

--ndr-parser
Genereer een C-bestand en C-header met NDR-parsers. De bestandsnaam voor de parser
standaard ingesteld op ndr_OUTNAME.c. De bestandsnaam van de header is de bestandsnaam van de parser met de
extensie gewijzigd van .c in .h.

--tdr-parser
Genereer een C-bestand en C-header met TDR-parsers. De bestandsnaam voor de parser
standaard ingesteld op tdr_OUTNAME.c. De bestandsnaam van de header is de bestandsnaam van de parser met de
extensie gewijzigd van .c in .h.

--typelib
Schrijf type-informatie naar het opgegeven bestand.

--server
Genereer boilerplate voor de RPC-server die de interface implementeert. Bestandsnaam
standaard ingesteld op ndr_OUTNAME_s.c.

--sjabloon
Genereer stubs voor een RPC-server die de interface implementeert. Uitvoer wordt geschreven
te stout.

--ws-parser
Genereer een Wireshark-dissector (in C) en headerbestand. De dissector bestandsnaam
standaard ingesteld op pakket-dcerpc-OUTNAME.c terwijl de bestandsnaam van de kop standaard is ingesteld op
pakket-dcerpc-OUTNAME.h.

Pidl leest aanvullende gegevens uit een Wireshark-conformiteitsbestand, indien aanwezig. Zo'n
bestand moet dezelfde locatie hebben als het IDL-bestand, maar met de extensie cnf liever
neem contact IDL. Zie Parse::Pidl::Wireshark::Conformance voor details over het formaat hiervan
bestand.

--verschil
Parseer een IDL-bestand, genereer een nieuw IDL-bestand op basis van de interne gegevensstructuren en
kijk of er verschillen zijn met het originele IDL-bestand. Nuttig voor debuggen
pidl.

--dump-idl-boom
Vertel pidl om de interne boomweergave van een IDL-bestand naar schijf te dumpen. Bruikbaar
voor het debuggen van pidl.

--dump-ndr-boom
Vertel pidl om de interne NDR-informatieboom die het uit het IDL-bestand heeft gegenereerd, te dumpen naar
schijf. Handig voor het debuggen van pidl.

--samba3-ndr-client
Genereer client-aanroepen voor Samba3, die in rpc_client/ moeten worden geplaatst. In plaats van te roepen
naar de code in rpc_parse/ van Samba3, zal dit in plaats daarvan de NDR-code van Samba4 aanroepen.

--samba3-ndr-server
Genereer serveraanroepen voor Samba3, te plaatsen in rpc_server/. In plaats van te roepen
naar de code in rpc_parse/ van Samba3, zal dit in plaats daarvan de NDR-code van Samba4 aanroepen.

IDL SYNTAXIS


IDL-bestanden worden altijd voorbewerkt met behulp van de C-preprocessor.

Vrijwel alles in een interface (de interface zelf, functies, parameters) kan
attributen hebben (of eigenschappen, welke naam je ze ook geeft). Attributen staan ​​altijd voor
het element waarop ze van toepassing zijn en zijn omgeven door vierkante haken ([]). Meerdere attributen
worden gescheiden door komma's; argumenten voor attributen worden tussen haakjes opgegeven.

Zie de sectie COMPATIBILITEIT voor de lijst met attributen die pidl ondersteunt.

Opmerkingen in C-stijl kunnen worden gebruikt.

CONFORM ARRAYS
Een conforme array is een array die eindigt op [*] of []. De vreemde dingen van conformant
arrays zijn dat ze alleen kunnen verschijnen als het laatste element van een structuur (tenzij er een
pointer naar de conforme array, natuurlijk) en de arraygrootte verschijnt vóór de
structuur zelf op de draad.

Dus in dit voorbeeld:

typedef struct {
lang abc;
lange telling;
lange foo;
[size_is(count)] lange s[*];
} Structuur1;

het ziet er zo uit:

[size_is] [abc] [count] [foo] [s...]

het eerste veld [size_is] is de toewijzingsgrootte van de array, en komt voor de array
elementen en zelfs vóór de uitlijning van de structuur.

Merk op dat maat_is() kan verwijzen naar een constante, maar dat verandert niets aan de draad
vertegenwoordiging. Het maakt de array niet tot een vaste array.

midl.exe zou de bovenstaande array schrijven als de volgende C-header:

typedef struct {
lang abc;
lange telling;
lange foo;
lange s[1];
} Structuur1;

pidl pakt het anders aan en schrijft het als volgt:

typedef struct {
lang abc;
lange telling;
lange foo;
lange *s;
} Structuur1;

VARIANT ARRAYS
Een variërende array ziet er als volgt uit:

typedef struct {
lang abc;
lange telling;
lange foo;
[size_is(count)] lange *s;
} Structuur1;

Dit ziet er als volgt uit op de draad:

[abc] [tellen] [foo] [PTR_s] [tellen] [s...]

FIXED ARRAYS
Een vaste array ziet er als volgt uit:

typedef struct {
lange s[10];
} Structuur1;

De NDR-weergave ziet er net uit als 10 afzonderlijke lange aangiften. De matrixgrootte is
niet gecodeerd op de draad.

pidl ondersteunt ook "inline" arrays, die geen deel uitmaken van de IDL/NDR-standaard. Dit zijn
verklaarde als volgt:

typedef struct {
uint32 foo;
uint32-telling;
uint32-balk;
lange s[telling];
} Structuur1;

Dit ziet er als volgt uit:

[foo] [tel] [bar] [s...]

Vaste arrays zijn een extensie die is toegevoegd ter ondersteuning van enkele van de vreemde ingebedde structuren in
beveiligingsdescriptors en spoolss.

Dit onderdeel is zeker niet volledig. Zie de OpenGroup- en MSDN-documentatie voor:
aanvullende informatie.

COMPATIBILITEIT MET MIDDEN


Vermist functionaliteiten in pidl
De volgende MIDL-functies zijn (nog) niet geïmplementeerd in pidl of zijn geïmplementeerd met een
incompatibele interface:

· Asynchrone communicatie

· Typelibs (.tlb-bestanden)

· Datagram-ondersteuning (ncadg_*)

ondersteunde attributen en verklaringen
in, uit, ref, length_is, switch_is, size_is, uuid, case, default, string, unique, ptr,
pointer_default, v1_enum, object, helpstring, bereik, lokaal, call_as, eindpunt,
switch_type, progid, coclass, iid_is, represent_as, send_as, import, include,
cpp_quote.

PIDL specifiek vastgoed
publiek
De eigenschap [public] op een structuur of unie is een pidl-extensie die de
gegenereerde pull/push-functies om niet-statisch te zijn. Hiermee kunt u typen declareren die:
kan tussen modules worden gebruikt. Als u [public] niet opgeeft, trek/push-functies
voor andere dan functies op het hoogste niveau worden statisch verklaard.

geen afdruk
De eigenschap [noprint] is een pidl-extensie waarmee u kunt specificeren dat pidl moet
genereer geen ndr_print_*() functie voor die structuur of unie. Dit wordt gebruikt wanneer:
je wilt je eigen printfunctie definiëren die een structuur op een mooiere manier print.
Een goed voorbeeld is het gebruik van [noprint] op dom_sid, waarmee mooie afdrukken van
SID's.

waarde
De eigenschap [value(expression)] is een pidl-extensie waarmee u de . kunt specificeren
waarde van een veld wanneer het op de draad wordt geplaatst. Hierdoor kunnen velden die altijd een . hebben
bekende waarde die automatisch moet worden ingevuld, waardoor de API meer programmeur wordt
vriendelijk. De uitdrukking kan elke C-uitdrukking zijn.

relatief
De eigenschap [relative] kan op een pointer worden geleverd. Wanneer het wordt gebruikt, verklaart het de
aanwijzer als een "relatieve" aanwijzer in spoelstijl, wat betekent dat deze op de draad verschijnt als:
een verschuiving binnen de huidige inkapselingsstructuur. Dit is geen onderdeel van normaal
IDL/NDR, maar het is een zeer nuttige extensie omdat het de handmatige codering van veel voorkomt
complexe structuren.

subcontext(lengte)
Specificeert dat een grootte van lengte bytes moeten worden gelezen, gevolgd door een blob van die grootte,
die zal worden geparseerd als NDR.

subcontext() is nu verouderd en mag niet worden gebruikt in nieuwe code. Gebruik in plaats daarvan
vertegenwoordig_as() or verzend_as().

vlag
Geef booleaanse opties op, die meestal worden gebruikt voor NDR-opties op laag niveau. Er kunnen verschillende opties zijn:
opgegeven met de | karakter. Merk op dat vlaggen worden overgenomen door substructuren!

niet-discriminerend
De eigenschap [nodiscriminant] op een vakbond betekent dat de gebruikelijke uint16 discriminant
veld aan het begin van de verbinding op de draad wordt weggelaten. Dit is normaal niet toegestaan
in IDL/NDR, maar wordt gebruikt voor sommige spoolss-structuren.

tekenset (naam)
Geef op dat de array of tekenreeks de opgegeven tekenset gebruikt. Als dit kenmerk is
gespecificeerd, zal pidl zorgen voor het converteren van de karaktergegevens van dit formaat naar
het hostformaat. Veelgebruikte waarden zijn UCS2, DOS en UTF8.

niet gesteund MIDDEN vastgoed or verklaringen
aggregeerbaar, appobject, async_uuid, bindbaar, controle, defaultbind, defaultcollelem,
standaardwaarde, standaardvtable, dispinterface, displaybind, dual, entry, first_is,
helpcontext, helpbestand, helpstringcontext, helpstringdll, hidden, idl_module, idl_quote,
id, onmiddellijkbind, importlib, includelib, last_is, lcid, gelicentieerd, max_is, module,
ms_union, no_injected_text, niet-doorzoekbaar, niet-maakbaar, niet-uitbreidbaar, odl, oleautomation,
optioneel, pragma, propget, propputref, propput, alleen-lezen, gevraagd, beperkt, reval,
source, uidefault, maakt gebruik van getlasterror, vararg, vi_progid, wire_marshal.

Voorbeelden


# Een Wireshark-parser genereren
$ ./pidl --ws-parser -- atsvc.idl

# Een TDR-parser en header genereren
$ ./pidl --tdr-parser --header -- regf.idl

# Een Samba3-client en -server genereren
$ ./pidl --samba3-ndr-client --samba3-ndr-server -- dfs.idl

# Een Samba4 NDR-parser, client en server genereren
$ ./pidl --ndr-parser --ndr-client --ndr-server --samr.idl

Gebruik pidlp online met onworks.net-services


Gratis servers en werkstations

Windows- en Linux-apps downloaden

  • 1
    Gin Web-framework
    Gin Web-framework
    Gin is een ongelooflijk snel webframework
    geschreven in Golang dat kan presteren tot
    40 keer sneller, dankzij zijn
    martini-achtige API en aangepaste versie van
    httproute...
    Gin webframework downloaden
  • 2
    CEREUS LINUX
    CEREUS LINUX
    CEREUS LINUX basado en MX LINUX con
    verschillende soorten escritorios. Dit is
    een toepassing die ook kan worden opgehaald
    van
    https://sourceforge.net/projects/cereu...
    CEREUS LINUX downloaden
  • 3
    Taakcoach
    Taakcoach
    Taakcoach - Uw vriendelijke taak
    manager. Task Coach is een gratis open
    bron todo-manager. Het groeide uit
    frustratie over andere programma's niet
    omgaan met composiet...
    Taakcoach downloaden
  • 4
    HyperSQL-database-engine (HSQLDB)
    HyperSQL-database-engine (HSQLDB)
    HSQLDB is een relationele database-engine
    geschreven in Java, met een JDBC-stuurprogramma,
    conform ANSI SQL:2016. Een kleine,
    snelle, multithreaded engine en server
    met mij...
    HyperSQL-database-engine (HSQLDB) downloaden
  • 5
    BATIK-HERSTEL
    BATIK-HERSTEL
    Projectherstel ontwikkeld door Batik
    Herstelteamwerk uit Indonesië, dit
    Batik Recovery is een afgeleide van de
    Officiële TWRP die is gewijzigd door de
    ontwikkel...
    BATIK-HERSTEL downloaden
  • 6
    TightVNC
    TightVNC
    TightVNC is een verbeterde versie van VNC,
    geweldige gratis remote-desktoptool. De
    verbeteringen omvatten bandbreedtevriendelijk
    "Strakke" codering, bestandsoverdrachten
    in ...
    Download TightVNC
  • Meer "

Linux-commando's

Ad