求助 ~ C语言翻译成易语言 自定义数据类型有成员是文本数组?

BOOL BASS_ASIO_ChannelGetInfo(
BOOL input,
DWORD channel,
BASS_ASIO_CHANNELINFO *info
);
Parameters
input: Dealing with an input channel? FALSE = an output channel.
channel: The input/output channel number... 0 = first.
info : Pointer to store the information at.

BASS_ASIO_CHANNELINFO结构:

typedef struct {
DWORD group;
DWORD format;
char name[32];
} BASS_ASIO_INFO;

翻译成易语言时,数据结构中的char name[32]就是文本数组的意思是吧,成员32个。

在调用时,看C里的例子测试是成功的,可我在易语言里调用时返回的name总是空的,就是name里每个成员都没有被改变,我没有赋值返回来是空的,我先每个成员赋值空文本返回还是空的,我先每个成员赋值为一个空格,回来就都还是空格,不知道错在哪里了。

C里的调用例子片段:
{ // get list of inputs (assuming channels are all ordered in left/right pairs)
int c;
BASS_ASIO_CHANNELINFO i,i2;
for (c=0;BASS_ASIO_ChannelGetInfo(TRUE,c,&i);c+=2) {
char name[200];
if (!BASS_ASIO_ChannelGetInfo(TRUE,c+1,&i2)) break; // no "right" channel
_snprintf(name,sizeof(name),"%s + %s",i.name,i2.name);
MESS(10,CB_ADDSTRING,0,name);
BASS_ASIO_ChannelJoin(TRUE,c+1,c); // join the pair of channels
}
MESS(10,CB_SETCURSEL,input,0);
}

求助在易语言里如何才能让调用BASS_ASIO_ChannelGetInfo的是后可以正确返回name呢?我调用时函数返回是真了,然后读结构中的group和format都正确,就是name读不出来。
自己搞定了~
应该是name成员用数组,数组数量32,然后调用时用‘取字节集数据 (到字节集 (局部_端口信息L.name), #文本型, )’方法取出内容。希望可以帮到有同样问题的朋友。

也很感谢大家的回答。这个知道不知道怎么关掉~~还是必须采纳一个答案?有点晕~

你把name的数组成员数改成0,然后用加入成员循环试试。再不行你把BASS_ASIO_CHANNELINFO弄成指针传过去看看。【指针做法搜 易语言数组用指针传递 第一个就有下载】

必须要采纳一个答案~~~ 哦 百度已经把取消功能关闭了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-15
有难度~
第2个回答  2012-09-20
你是做音频软件?ASIO输入输出流
我也正好在做 还有很多不清楚 要么一起交流

这库里太灵活了 有些数据貌似要调用其他函数来获取底层信息 才能获得想要的值
不过库里基本都包含了吧
相似回答