Там у тебя CINT я ооооооочень давно не тыкал, но выделяешь память как в С или С++ пишешь туда обычным С/С++ кодом и сохраняешь обычным fprintf или cout <<. Но это когда чистоинтерпретатор, а когда именно фреймворк ROOT там уже своё что-то, а вот что не в курсе я.
Еще задача научить ROOT рисовать в окне, создаваемым другой GUI библиотекой, кроме qt.
Это надо в потроха рута лезть и переписывать его внутренние классы. Кто дал тебе такое задание вообще, да ещё и без указания конкретной GUI библиотеки? Седьмой рут уже рисует в веб браузере, например, это сойдёт за решение?
задача научить ROOT рисовать в окне, создаваемым другой GUI библиотекой, кроме qt.
?
void MyWindow::Create() {
// Add this window to TVirtualX list of windows
// in return get its TVirtualX identifier
int wid = gVirtualX->AddWindow((ULong_t)getid(), getWidth(), getHeight());
// Create a new TCanvas, specifying this windows id as parent
fCanvas = new TCanvas("fCanvas", getWidth(), getHeight(), wid);
}
Глянул по-быстрому в сырцы class TGX11 : public TVirtualX. Похоже, про ID окна созданного Qt это лажа документации. Должно жрать просто ID любого X11-окна.
Думаю, на других платформах (WinAPI, Cocoa), так же: жрёт нативный хэндл окна. А не «созданный Qt» (впрочем, «созданный Qt» может просто всегда совпадать с нативным).