блокировка изменение системных переменных

Автор Тема: блокировка изменение системных переменных  (Прочитано 6545 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн begizАвтор темы

  • ADN Club
  • ***
  • Сообщений: 161
  • Карма: 8
  • Skype: begiz_i
Добрый день.
Столкнулся с такой проблемой.
Необходимо заблокировать отклиучение привиазки к гриду.
Вроде все просто.
Код - C++ [Выбрать]
  1. static bool changed = false;
  2.  
  3. void CEdReactor::sysVarChanged(const ACHAR* varName, Adesk::Boolean success)
  4. {
  5.         //CEdReactor::sysVarChanged(varName,success);
  6.         if(_tcscmp(varName,_T("SNAPMODE"))==0) {
  7.                 if(!changed)
  8.                 {
  9.                         resbuf rb;
  10.                         rb.restype = RTSHORT;
  11.                         rb.resval.rint = 1;
  12.                         acedSetVar(_T("SNAPMODE"), &rb);
  13.                         changed = true;
  14.                 }
  15.                 else changed = false;  
  16.         }
  17. }
Но почему то не работает, т.е. вылетает на строчке acedSetVar.

Система:
Acad 2013 64-бит Eng.
« Последнее редактирование: 07-07-2015, 15:42:47 от begiz »

Отмечено как Решение begiz 07-07-2015, 16:21:24

Оффлайн Николай Горлов

  • ADN
  • *
  • Сообщений: 238
  • Карма: 34
Код - C++ [Выбрать]
  1. if(_tcscmp(varName,_T("SNAPMODE"))==0)
  2. {
  3.         if(!changed)
  4.         {
  5.                 changed = true; // вынести вверх
  6.                 resbuf rb;
  7.                 rb.restype = RTSHORT;
  8.                 rb.resval.rint = 1;
  9.                 acedSetVar(_T("SNAPMODE"), &rb);
  10.         }
  11.         else changed = false;
  12. }
  13. AcEditorReactor::sysVarChanged(varName, success); // тоже не помешает
  14.  

дебагер спасет мир )))

Оффлайн begizАвтор темы

  • ADN Club
  • ***
  • Сообщений: 161
  • Карма: 8
  • Skype: begiz_i
Стыдно стыдно стыдно!!!
Перегрелся я походу :)
Да, все работаэт, спасибо!!