2

シンプルなDERデコーダーを作成しようとしています-特定のデータ構造のコンテンツを出力するだけのコンソールアプリケーション(このようなDER形式でエンコードされています)。

この例の実行に問題があります: 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. 追加のインクルード ディレクトリを ASN1C の「スケルトン」ディレクトリに設定しました
6 . 作ってみました。

私は何が欠けていますか?

どんな助けでもいただければ幸いです

4

2 に答える 2

2

問題は、ASN1Cによって生成されたコードをMSVCでコンパイルし、Windows環境で使用するには、コードを変更する必要があることです。

  1. #include <inttypes.h>に置き換える必要があります#define ssize_t SSIZE_T
  2. #include <netinet/in.h>に置き換える必要があります#include <Winsock2.h>
  3. キーワードはで定義された関数inlineから削除する必要がありますstaticasn_internal.h

その後、すべてが正常に動作します;)

于 2012-02-22T13:07:57.390 に答える
0

正しい ASN 定義ファイルがあることを確認してください。次に、 http://lionet.info/asn1c/asn1c.cgiにリンクします。

指定されたウィンドウに ASN 定義を貼り付けます。「ASN.1コンパイルを続行」ボタンを押します。コンパイル エラーが発生した場合は、それらを修正します。コンパイルが成功すると、デコーダーのコードが生成されます。試してみてください。

于 2012-02-22T12:28:27.460 に答える