Domanda
Sto cercando di creare una semplice applicazione DER Decoder - Console che emette solo il contenuto della determinata struttura dei dati (codificata in formato DER, come Questo).
Ho problemi con l'esecuzione di questo esempio: Un decodificatore "rettangolo" .
Sto cercando di compilarlo con MSVC e ho problemi con #include <inttypes.h>
e #include <netinet/in.h>
. Digita anche ssize_t
è indefinito.
Ecco cosa ho fatto per ora:
1. AT Compilatore ASN.1 online Ho incollato questo codice in Textfield:
RectangleModule1 DEFINITIONS ::=
BEGIN
Rectangle ::= SEQUENCE {
height INTEGER,
width INTEGER
}
END
2. Ho selezionato "Usa i tipi di macchine native" e "Genera per supporto" opzioni.
3. It "Compilato ok" Quindi ho scaricato quell'output .tgz
4. CREATO PROGETTO vuoto Int Visual Studio 2010, file di sorgente con trascinamento di drag-N estratti da questo .tgz
5. Imposta aggiuntiva include la directory sulla directory "scheletri" di ASN1c
6. Ho provato a costruirlo.
Cosa mi manca?
Qualsiasi aiuto sarebbe apprezzato
Soluzione
Il problema è che il codice generato da ASN1c deve essere modificato per compilarlo con MSVC e utilizzarlo in ambiente Windows.
#include <inttypes.h>
dovrebbe essere sostituito con#define ssize_t SSIZE_T
#include <netinet/in.h>
dovrebbe essere sostituito con#include <Winsock2.h>
- parola chiave
inline
dovrebbe essere rimosso dastatic
funzioni definite inasn_internal.h
Dopodiché, tutto funziona bene;)
Altri suggerimenti
Assicurati di avere un file di definizione ASN corretto. Quindi vai a Link http://lionet.info/asn1c/asn1c.cgi
Incolla la tua definizione ASN nella finestra data. Premere il pulsante "Procedere con la compilation ASN.1". Se si ottiene un errore di compilazione, rettifica quelli. Dopo la compilazione, genererà il codice per il decodificatore. Provalo va bene.