2012-10-24 69 views
1

在这个简单的例子煤渣(由煤渣介绍 - http://libcinder.org/docs/v0.8.4/hello_cinder.html)我得到这个编译错误:煤渣函数重载错误

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

错误1个错误C2661: '煤渣::应用::应用:: loadResource':没有重载函数有1个参数

但是文档说:

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

任何想法?

回答

2

你指的是相同的功能:

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

没用过这个LIB,但医生说第一个功能需要更多的参数:

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 
) 
+0

谢谢。显然,cinder在Windows上以不同方式处理资源。教程是为Mac。有关cinder资源的更多信息:(http://libcinder.org/docs/v0.8.4/_cinder_resources.html) cinder对windows的支持似乎还处于初级阶段。 – dvgvrco

+0

我不会说Cinder对Windows的支持还处于起步阶段。 OS X和Windows平台都积极保持最新状态,其中一个与另一个没有多大区别。然而,Cinder的文档有点落后,这是你错误的原因:在编写文档后功能被改变了。 Cinder有一个非常活跃的论坛,其中你在这里发布的问题通常在几个小时内得到解答,请参阅http://forum.libcinder.org,但我想你现在已经发现了:) –

0

你最好试装作为资产而不是资源:

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

其中image.jpg位于资产文件夹中。资产在运行时从此资产文件夹加载。这个文件夹可以在程序的同一层或上面三个。

资源均位于资源文件夹,并在编译阶段被复制,并与应用程序或可执行包装。

要使用包括资源头

#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中,您的图片必须添加到您的项目中,只需将其拖到项目树中即可。