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
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.
#include <inttypes.h>
debe ser reemplazado con#define ssize_t SSIZE_T
#include <netinet/in.h>
debe ser reemplazado con#include <Winsock2.h>
- palabra clave
inline
debe eliminarse destatic
funciones definidas enasn_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.