ASN1C DER解码器

时间:2012-02-22 11:44:08

标签: c++ visual-c++ asn.1 der

我正在尝试创建简单的DER解码器 - 控制台应用程序,它只输出给定数据结构的内容(以DER格式编码,如 this one )。

我在运行此示例时遇到问题: A ''Rectangle'' Decoder

我正在尝试使用MSVC编译它,我遇到了#include <inttypes.h>#include <netinet/in.h>的问题。类型ssize_t也未定义。

以下是我现在所做的事情:
1.在Online ASN.1 Compiler我将此代码粘贴到文本字段中:

RectangleModule1 DEFINITIONS ::=
BEGIN

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

END

2。我选择 “使用本地计算机类型” “生成PER支持” 选项。
3. “编译好” 所以我下载了输出 .tgz
4.在Visual Studio 2010中创建空项目,从此 .tgz 中提取的拖放源文件 5.将附加的include目录设置为ASN1C的“骨架”目录 6.试图建立它。

我错过了什么?

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:2)

问题是必须修改ASN1C生成的代码才能使用MSVC进行编译并在Windows环境中使用它。

  1. #include <inttypes.h>应替换为#define ssize_t SSIZE_T
  2. #include <netinet/in.h>应替换为#include <Winsock2.h>
  3. 关键字inline应从static
  4. 中定义的asn_internal.h个功能中删除

    之后,一切正常;)

答案 1 :(得分:0)

确保您拥有正确的ASN定义文件。然后去链接     http://lionet.info/asn1c/asn1c.cgi

将ASN定义粘贴到给定窗口中。按“继续ASN.1编译”按钮。如果您收到任何编译错误,请纠正这些错误。编译成功后,它将为您的解码器生成代码。试试吧。