quick 发表于 2025-9-3 16:58:10

请教c++的封装,大佬来看看

/* option api */
typedef struct __ncnn_option_t* ncnn_option_t;

NCNN_EXPORT ncnn_option_t ncnn_option_create(void);
NCNN_EXPORT void ncnn_option_destroy(ncnn_option_t opt);

NCNN_EXPORT int ncnn_option_get_num_threads(const ncnn_option_t opt);
NCNN_EXPORT void ncnn_option_set_num_threads(ncnn_option_t opt, int num_threads);

NCNN_EXPORT int ncnn_option_get_use_local_pool_allocator(const ncnn_option_t opt);
NCNN_EXPORT void ncnn_option_set_use_local_pool_allocator(ncnn_option_t opt, int use_local_pool_allocator);

NCNN_EXPORT void ncnn_option_set_blob_allocator(ncnn_option_t opt, ncnn_allocator_t allocator);
NCNN_EXPORT void ncnn_option_set_workspace_allocator(ncnn_option_t opt, ncnn_allocator_t allocator);

NCNN_EXPORT int ncnn_option_get_use_vulkan_compute(const ncnn_option_t opt);
NCNN_EXPORT void ncnn_option_set_use_vulkan_compute(ncnn_option_t opt, int use_vulkan_compute);
<火山程序 类型 = "通常" 版本 = 1 />

# @begin
# <include>
# typedef struct __ncnn_option_t* ncnn_option_t;
# </include>
# @end


<火山程序 类型 = "通常" 版本 = 1 />

变量 p_option <公开 类型 = 变整数 @输出名 = "poption">


方法 ncnn_option_create <公开 类型 = 逻辑型 @禁止流程检查 = 真>
{
    @ ncnn_option_t poption = ncnn_option_create();
    @ return poption > 0;
}



方法 ncnn_option_set_use_vulkan_compute <公开 注释 = "会崩溃" @禁止流程检查 = 真>
参数 use_vulkan_compute <类型 = 整数>
{
    @ ncnn_option_set_use_vulkan_compute((ncnn_option_t)&poption, @<use_vulkan_compute>);
}


主要是 ncnn_option_set_use_vulkan_compute(ncnn_option_t opt, int use_vulkan_compute), 这个函数的 第一个参数 不知道怎么传参了,上面代码测试会崩溃 ,大佬帮忙看看

glbosom 发表于 2025-9-3 18:21:59

这个 poption 变量声明是局部的吧!

Xelloss0618 发表于 2025-9-3 20:55:24

你这个ncnn_option_t本身就是指针,不需要 &

<火山程序 类型 = "通常" 版本 = 1 />

变量 p_option <公开 类型 = 变整数 @输出名 = "poption">

方法 ncnn_option_create <公开 类型 = 逻辑型 @禁止流程检查 = 真>
{
    @ poption = (INT_P)ncnn_option_create();
    @ return poption > 0;
}

方法 ncnn_option_set_use_vulkan_compute <公开 注释 = "会崩溃" @禁止流程检查 = 真>
参数 use_vulkan_compute <类型 = 整数>
{
    @ ncnn_option_set_use_vulkan_compute((ncnn_option_t)poption, @<use_vulkan_compute>);
}

quick 发表于 2025-9-4 08:54:50

Xelloss0618 发表于 2025-9-3 20:55
你这个ncnn_option_t本身就是指针,不需要 &




谢谢大佬指点
页: [1]
查看完整版本: 请教c++的封装,大佬来看看