私が理解していることから、これはうまくいくはずです:
const char* x = "x";
std::cout << x << std::endl;
この関数に x を渡す:
void myClass::passAsVoid(void* v) {
std::cout << (const char*)v << std::endl;
}
最初の例は "x" を出力します。
2 番目の例では、"\350\224A" が出力されます。
何が起こっているのか、そしてこれを行うための正しいアプローチを学びたいです!
実際のコード:
float delay = 1;
std::string txt = "random filler text that is not lorum ipsum";
for (int i = 0; i < txt.length(); ++i) {
const char* x = "x";
std::cout << x << "code1" << std::endl;
CCSequence* seq = CCSequence::create(CCDelayTime::create(i*delay),
CCCallFuncND::create( this, callfuncND_selector(OverWorldView::setString), (void*)x ),
NULL);
this->runAction(seq);
}
コールバック関数:
void OverWorldView::setString(void* x) {
std::cout << (const char*)x << "code2" << std::endl;
label1->setString( (const char*)x );
}
私はcocos2dx 2.1.4を使用しています