我正在使用Linux。
我有一个函数叫做:
PlayBackgroundIntroMusic((char *)"IntroMusic");
功能是:
无效的声音管理器::
PlayBackgroundIntroMusic(char * musicFile)
{
// 为每个平台连接扩展
strcat(音乐文件,音频扩展);
CCLOG("musicFile: %c" musicFile);
SimpleAudioEngine::sharedEngine()->playBackgroundMusic(std::string(CCFileUtils::fullPathFromRelativePath(musicFile)).c_str(), false);
}
但是我无法在线访问内存:
strcat(音乐文件,音频扩展);
声明了 audioExtension:
#包括
使用标准::字符串;
#包括
使用 std::cout;使用 std::cerr;使用 std::endl;
/**
* 为每个平台声明声音扩展
* 安卓 = ogg
* iOS = 咖啡馆
* WIN32 = mp3
*/
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
静态 const char * audioExtension = ".wav";
#elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
静态 const char * audioExtension = ".caf";
#elif (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
静态 const char * audioExtension = ".ogg";
#万一
所以,我希望有:
iOS 上的 IntroMusic.caf Android 上的 IntroMusic.ogg
发生了什么事?
注意:我试图:
char * musicFileWithExtension = strcat (musicFile,audioExtension);
但它无论如何都没有用。
musicFile 不是一个常数。如果文件名太长,我不想声明 tempchar[80] 以避免溢出,例如示例 cc 参考
提前致谢。