煤渣功能过载错误

时间:2012-10-24 21:03:32

标签: c++ overloading cinder

在这个简单的cinder示例中(来自cinder介绍 - http://libcinder.org/docs/v0.8.4/hello_cinder.html)我得到了这个编译错误:

myImage = gl::Texture( loadImage( loadResource( "image.jpg" ) ) );

错误1错误C2661:'cinder :: app :: App :: loadResource':没有重载函数需要1个参数

然而文档说:

DataSourceRef cinder::app::loadResource (   const std::string &     macPath  )

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

你指的是同一个功能:

cinder::app::App::loadResoure
cinder::app::loadResource

从未使用过这个lib,但doc说第一个函数需要更多参数:

http://libcinder.org/docs/v0.8.4/classcinder_1_1app_1_1_app.html#afef905bb792960152d38c2680f88ea33

static DataSourceRef cinder::app::App::loadResource (   
       const std::string &  macPath,
       int  mswID,
       const std::string &  mswType  
)   

答案 1 :(得分:0)

您最好尝试加载资源而不是资源:

    gl::TextureRef      texImagen;
    texImagen = gl::Texture::create( loadImage( getAssetPath( "image.jpg" ) ) );

其中image.jpg位于assets文件夹中。资产在运行时从此资产文件夹加载。此文件夹可以与程序位于同一级别,也可以位于上述三个位置。

资源位于资源文件夹中,并在编译阶段复制,并与应用程序或可执行文件一起打包。

使用包含资源标题

   #include "Resources.h"

包含类似的内容

#pragma once
#include "cinder/CinderResources.h"
#define MY_IMAGE       CINDER_RESOURCE( ../resources/, image.jpg, 1, IMAGE )

然后你可以加载它

texImagen = gl::Texture::create( loadResource( MY_IMAGE ) );

请注意,如果您使用Xcode,则必须将图像添加到项目中,只需将其拖到项目树中即可。