2

typedef を使用した構造定義と、typedef を使用した char 定義の配列を含む C ヘッダー ファイルがあります。

/* File: test.h */

typedef struct
{
    char *key;
    void *value;
    int size;
} cti_pair;

typedef char FOO[CONST];

SWIG インターフェイス ファイルには、次の行が含まれています。

/* File: test.i */
%module test

%{
#define SWIG_FILE_WITH_INIT
#include "/home/users/jdoe/workspace/project/src/lib-cti/test.h"
...
%}

#ifndef CTI_TYPES_H_
#define CTI_TYPES_H_
#include "cti_const.h"

typedef char FOO[CONST];

typedef struct
{
    char *key;
    void *value;
    int size;
} cti_pair;

問題は、cti_pair 構造体にアクセスできるが、Python スクリプトで FOO (定義されていない) を使用できないことです。

4

1 に答える 1

1

わかりました、問題が何であったかを理解してください。実は、インターフェイス ファイルの別の部分で %extend を使用しました。ただし、このキーワードは基本的な typedef ではなく、構造体でのみ使用できます (%extend を間違った方法で使用しても、SWIG はエラー メッセージを表示しません)。

実際のところ、FOO が定義されていました。問題はこれとはまったく関係ありませんでした。ありがとう!

于 2012-11-16T10:49:56.413 に答える