首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >include_bytes宏不带参数,即使它是类型&‘静态str

include_bytes宏不带参数,即使它是类型&‘静态str
EN

Stack Overflow用户
提问于 2022-10-25 17:59:47
回答 1查看 44关注 0票数 0

我用的是胶质,我试着用一个结构来简化纹理的使用。问题是,我用来初始化结构的函数接受&'static str作为参数,但是include_bytes!()宏不接受它,编译器说参数必须是字符串文本。以下是功能失调的代码:

代码语言:javascript
复制
fn load(path : String, format : ImageFormat, display : glium::Display) -> Image{
    let image = image::load(Cursor::new(&include_bytes!(path)[..]),
                        format).unwrap().to_rgba8();
    let image_dimensions = image.dimensions();
    let image = glium::texture::RawImage2d::from_raw_rgba_reversed(&image.into_raw(), image_dimensions);
    let _opengl_texture = glium::texture::CompressedSrgbTexture2d::new(&display, image).unwrap();
    return Image{opengl_texture : _opengl_texture}
}

我试着使用String并以多种方式转换它,但它仍然没有工作。

EN

回答 1

Stack Overflow用户

发布于 2022-10-25 18:07:28

include_bytes!宏用于在编译时从文件中加载数据并将其嵌入到可执行文件中。因此,必须通过字符串文本在编译时知道路径。您的path变量只有在运行时才知道。

也许你想要的是std::fs::read

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74198327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档