SWIG无法转换typedef typ

2024-06-28 12:24:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我用SWIT把一个vc项目转换成python。 我发现当一个结构有一个类似于“typedef char TEXT[16]”类型的成员时,无法正确转换。 例如:

typedef char TEXT[16];
struct MYSTRUCT
{       
    TEXT    TradingDay;     
};

包装器cpp无法正常编译。 “错误C2075:'operator new()'的目标:数组初始化需要大括号” 但是,如果typedef不是数组,如下所示:

^{pr2}$

会没事的。 我该怎么办? 谢谢!在

备注: 我的文件:

%module MyDataAPI
%include "typemaps.i"

%header %{
#include "../References/MyDataAPI.h"

%}

namespace MyDataAPI
{
     struct MYSTRUCT
    {       
        TEXT    TradingDay;     
    };
    struct MYSTRUCT2
    {       
        NUMBER Money;       
    };
}

Tags: 项目text类型include成员数组结构struct
1条回答
网友
1楼 · 发布于 2024-06-28 12:24:15

确保您的typedef语句由SWIG处理。%header只向生成的文件添加代码,SWIG不处理该数据。%inline两者都直接将代码添加到生成的文件中,使用SWIG处理它。这是我的.i文件:

%module x

%inline %{
    typedef char TEXT[16];
    typedef int NUMBER;
    namespace MyDataAPI
    {
        struct MYSTRUCT
        {
            TEXT TradingDay;
        };
        struct MYSTRUCT2
        {
            NUMBER Money;
        };
    }
%}

并使用:

^{pr2}$

相关问题 更多 >