将char数组从C ++函数返回到tcl

彼得·马克

我见过类似的问题,但无法获得预期的结果。我需要调用一个c ++函数,并使该函数将数组传递给tcl。我当前的结构是:

    Tcl_Obj *     result = Tcl_NewObj();
    unsigned char *buffer = Tcl_SetByteArrayLength(result, 16);
    //some other code

    //I2C function that fills the buffer
    sub_i2c_read(handles[handle], theI2cAddr, 0, 0, (char*)buffer, theNumToRead

    //more code
    //try to place data in tcl
    Tcl_SetObjResult(theInterp, result);

我已经能够看到缓冲区在c ++中具有所需的内容,但是我试图在tcl中将其设置为的变量为空。

我试图这样称呼它:

    set result [sub20 read  $hand "70" 3]

我目前的想法是,这将使tcl对象成为对象,使用“缓冲区”作为指向字节数组的指针将其转换为字节数组,然后将数据设置为tcl,但这显然是有缺陷的。
任何对此进一步的澄清将不胜感激。

多纳研究员

该C ++代码看起来不错。字节应该在缓冲区中就好了,缓冲区应该已经转移到Tcl的所有权并存储在变量中就好了。您可以通过检查其中string length $result有多少个字节进行双重检查Tcl认为字节数组是介于U + 000000到U + 0000FF之间的字符串,因此字符串操作透明地工作。

您可能无法做的就是将其打印出来。从各种协议字节数组往往含有大量的空值(U + 000000,NUL \000\x00\u0000等),他们不打印效果不佳。相反,要了解内容,请使用binary命令来解析字节。例如:

binary scan $result i2d ints dble

这将占用该16字节的缓冲区,并从中读取两个低端32位整数(将它们存储在ints变量中的两个元素的Tcl列表中),然后在当前平台的本机表示形式中存储IEEE双精度浮点数(存储它在dble变量中)。i2d是格式描述符; 那里支持许多格式字符,您必须仔细阅读文档才能准确获得所需的内容。但是,变量之后将保留常规的Tcl值(的实际结果binary scan2成功处理的格式字符数(不包括修饰符),在此示例中应为2)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

导出托管的C#函数以将更改的char *参数返回到非托管代码

来自分类Dev

将值从arraylist返回到ajax成功函数

来自分类Dev

将数组地址从函数返回到指针(C ++)

来自分类Dev

jQuery将函数返回到变量

来自分类Dev

OpenVMS(VAX)Fortran函数将字符*(*)返回到C

来自分类Dev

将指向char数组的指针作为函数的参数传递-C

来自分类Dev

如何将值从递归函数返回到数组

来自分类Dev

C:如何将多个值从函数返回到main

来自分类Dev

C编程,将char数组传递给函数

来自分类Dev

如何应用将数据框返回到groupby对象的函数

来自分类Dev

将char数组传递给函数C ++

来自分类Dev

将函数的静态数组返回到main()函数中的另一个数组

来自分类Dev

将jquery ajax done函数生成的数据返回到变量

来自分类Dev

React-将api调用结果返回到原始函数

来自分类Dev

PHP FFI-将数组Rust函数返回到PHP

来自分类Dev

将foreach值从函数返回到数组

来自分类Dev

将数组地址从函数返回到指针(C ++)

来自分类Dev

C18将char数组传递给函数

来自分类Dev

函数将数组返回到另一个函数>未捕获的TypeError

来自分类Dev

jQuery将函数返回到变量

来自分类Dev

将变量从函数返回到视图

来自分类Dev

将指针传递给char数组作为函数的参数-C

来自分类Dev

在C函数中返回char数组

来自分类Dev

将函数的输出返回到字典

来自分类Dev

无法将数组从 php 函数返回到 ajax 请求

来自分类Dev

Oracle 函数将行返回到 C#

来自分类Dev

从函数返回到main的指针数组为NULL

来自分类Dev

C语言如何将指针从函数返回到指针

来自分类Dev

将整个 unsigned char 数组返回到 main

Related 相关文章

热门标签

归档