我正在編譯Func
到靜態庫,並在C程序中使用它。我收到一條消息:Output buffer f20 has type int32 but elem_size of the buffer passed in is 1 instead of 4
。在這種情況下,我無法弄清楚我做錯了什麼。這裏的Func
:輸出緩衝區的類型爲int32,但傳遞的緩衝區的elem_size爲1而不是4
Var x, y, c;
Func out;
out(c, x, y) = cast<uint8_t>(255);
如果我理解正確,已解析的輸出類型應爲uint8_t
。下面是我如何在C程序中創建我的緩衝區:
buffer_t buffer;
buffer.extent[0] = 4;
buffer.extent[1] = width;
buffer.extent[2] = height;
buffer.elem_size = 1;
buffer.host = data;
buffer.stride[0] = 1;
buffer.stride[1] = 4;
buffer.stride[2] = stride;
fill_buffer(&buffer);
緩衝區中確實含有uint8_t
價值觀和我設置elem_size
爲1,所以我不知道如何使鹵化物使用它作爲8位值..