0

私が理解していることから、これはうまくいくはずです:

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を使用しています

4

2 に答える 2