Это не проблема Unicode. Комментарий правильный: вы ссылаетесь на библиотеку отладки, но в вашем модуле не определен DEBUG.
Есть два случая, когда срабатывает assert: оба ненулевые, и когда оба нулевые. Оба значения, отличные от NULL, указывают на некоторую путаницу в Юникоде, но этот метод вызывается только из UNIFODE #ifdef с одним из параметров 0.
Параметр имени объекта обычно передается в CBaseObject с помощью макроса NAME (). Этот макрос возвращает значение NULL в сборках выпуска и строку имени объекта в сборках отладки. CBaseObject вызовет функцию регистра в отладочных сборках.
Ваш конструктор компилирует wxdebug.h с неопределенным DEBUG (поэтому NAME () оценивается как NULL). Но вы ссылаетесь на библиотеку базовых классов, которая была создана с определением DEBUG.
G