Без остатка вашего кода, чтобы убедиться, что это работает. Вы должны использовать .merge () . Для v3 метод отличается, это для v4 +.
let rects = svg.selectAll('rect')
.data(data)
//On update Only
rects.attr('fill', 'black')
//On enter ...
rects.enter()
.append('rect')
.style('fill', 'maroon')
.merge(rects)
.attr('x', (d, i)=>i*(barWidth+padding))
.attr('y', d=>height - bar_height(d.value))
.attr('width', barWidth)
.attr('height', d=> bar_height(d['value']))
Это объединит вновь добавленные rects
с выбором существующих rects и обновит все из них всем, что следует после оператора merge
.
C++ / CLI позволяет, Вы для смешивания в собственном C++ в значительной степени по желанию, но использующий C++ / CLI заставляете приложение зависеть от платформы.NET.
Причиной является Ваш C++/, проект CLI не имеет, некоторые освобождают (user32.lib, в примере), установка во входе компоновщика - то, что платформа.NET уже предоставляет подобные услуги, и IDE предполагает предпочтение услуг к более старым, собственным.
Проверьте свой проект и добавьте ссылку на соответствующую библиотеку.