Pregunta

Estoy tratando de crear un decodificador DER simple: una aplicación de consola que solo genera contenido de la estructura de datos dada (codificada en formato DER, como Éste).

Tengo problemas para ejecutar este ejemplo: Un decodificador de "rectángulo" .

Estoy tratando de compilarlo con MSVC y tengo problemas con #include <inttypes.h> y #include <netinet/in.h>. También escriba ssize_t es indefinido.

Esto es lo que he hecho por ahora:
1. Compilador en línea ASN.1 Pasté este código en Textfield:

RectangleModule1 DEFINITIONS ::=
BEGIN

Rectangle ::= SEQUENCE {
    height  INTEGER,
    width   INTEGER
}

END

2. Seleccioné "Use tipos de máquinas nativas" y "Generar por soporte" opciones.
3. "Compilado OK" Entonces descargué esa salida .tgz
4. Creado Project Int Visual Studio 2010, Archivos de origen de arrastre y drogado extraídos de esto .tgz
5. Establezca el directorio de incluido adicional en el directorio "Skeletons" de ASN1C
6. Intenté construirlo.

¿Qué me estoy perdiendo?

Cualquier ayuda sería apreciada

¿Fue útil?

Solución

El problema es que el código generado por ASN1C debe modificarse para compilarlo con MSVC y usarlo en el entorno de Windows.

  1. #include <inttypes.h> debe ser reemplazado con #define ssize_t SSIZE_T
  2. #include <netinet/in.h> debe ser reemplazado con #include <Winsock2.h>
  3. palabra clave inline debe eliminarse de static funciones definidas en asn_internal.h

Después de eso, todo funciona bien;)

Otros consejos

Asegúrese de tener un archivo de definición ASN correcto. Entonces ve a Link http://lionet.info/asn1c/asn1c.cgi

Pegue su definición ASN en la ventana dada. Presione el botón "Proceda con la compilación ASN.1". Si obtiene algún error de compilación, rectifiquelos. Después de que la compilación sea exitosa, generará el código para su decodificador. Pruébalo, es bueno.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top