Попытка добавить каждый элемент вектора в окно параметров по событию мыши - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть вектор имен. Каждый раз, когда пользователь выполняет взаимодействие с мышью, я хочу добавить элемент в свой вектор и дать ему имя пользователя. Использование параметров Cinder Framework в качестве графического интерфейса. Вот код:

#include "cinder/app/App.h"
#include "cinder/app/RendererGl.h"
#include "cinder/gl/gl.h"
#include "cinder/params/Params.h"

using namespace ci;
using namespace ci::app;
using namespace std;

class TestParamsApp : public App {
  public:
    void setup() override;
    void mouseUp( MouseEvent event ) override;
    void draw() override;

    params::InterfaceGlRef mParams;
    vector<std::string> names;
    int nameIdx = 0;
};

void TestParamsApp::setup()
{
    mParams = params::InterfaceGl::create(getWindow(), "Test Params", toPixels(ivec2(200, 200)));
}

void TestParamsApp::mouseUp(MouseEvent event) {
    names.push_back("");
    mParams->addParam("Actor " + std::to_string(nameIdx), &names[nameIdx]);
    nameIdx++;
}

void TestParamsApp::draw()
{
    gl::clear( Color( 0, 0, 0 ) ); 
    mParams->draw();
}

CINDER_APP( TestParamsApp, RendererGl )

Однако, после добавления второго элемента, я получаю исключение: нарушение прав чтения. _First было 0xDDDDDDDD.

...