Fragment Ответов: 1

Кто-нибудь сталкивался с утверждением нулевого указателя при добавлении подпункта в cmfcpropertygridproperty


Сложный код на C++, но суть в псевдокоде такова:
У меня есть pGroup1 = CMFCPropertyGridProperty * со следующей структурой.
pGroup1
subGroup1ItemA("числовой")
подгруппа1itema_1("PI",(_variant_t) "3.14", "коэффициент" )
подгруппа1itema_2("e",(_variant_t) "2.7182", "рост" )
подгруппа 1b("текст")
подгруппа1с("точка")

Это устанавливается во время выполнения, работает нормально.
Однако, когда я добавляю, во время последующего взаимодействия с пользователем:
subGroup1ItemA("Numeric").addSubItem("Phi",(_variant_t) "1.618", "gold" )
Программа встречает утверждение нулевого указателя в DLL(mfc140ud.dll) когда мышь пролетает над окном, содержащим эти объекты CMFCPropertyGridProperty.

Что я уже пробовал:

Ругался, дергал за волосы.
Кроме того, я поймал исключение, но все еще не знаю, какой указатель объекта находится в null.
Пошаговое выполнение кода, добавляющего этот элемент, работает, и я могу проверить, что добавленный объект находится в правильном положении измененной цепочки узлов-заголовков.

Shao Voon Wong

Можете ли вы загрузить на GitHub пример проекта, который воспроизводит эту проблему? Потому что я не могу найти метод addSubItem, который соответствует вашим аргументам. Вы не должны приводить строковый литерал к _variant_t: это 2 разных типа.

1 Ответов

Рейтинг:
2

KarstenK

Утверждение нулевого указателя-это результат того, что вы что-то пропустили. Похоже, что вы каким-то образом активировали всплывающие подсказки, но не предоставляете их правильно. Я бы переопределил функцию всплывающей подсказки, чтобы иметь полный контроль над ней, или деактивировал их.

Отдай это ответ выстрелить.