我正在尝试创建简单的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.试图建立它。
我错过了什么?
任何帮助将不胜感激
答案 0 :(得分:2)
问题是必须修改ASN1C生成的代码才能使用MSVC进行编译并在Windows环境中使用它。
#include <inttypes.h>
应替换为#define ssize_t SSIZE_T
#include <netinet/in.h>
应替换为#include <Winsock2.h>
inline
应从static
asn_internal.h
个功能中删除
醇>
之后,一切正常;)
答案 1 :(得分:0)
确保您拥有正确的ASN定义文件。然后去链接 http://lionet.info/asn1c/asn1c.cgi
将ASN定义粘贴到给定窗口中。按“继续ASN.1编译”按钮。如果您收到任何编译错误,请纠正这些错误。编译成功后,它将为您的解码器生成代码。试试吧。