Перейти к публикации

Ошибка в Teamcenter при выполнении handler


Рекомендованные сообщения

1 час назад, koner сказал:

    SAFE_CALL(AOM_ask_value_string(task, "comments", comment), ifail, *comment);
    if (comment == NULL || !strcmp((*comment), "")) {
        strcpy((*comment), "(нет)");
    }
тут ошибка, нельзя записывть в commen "нет". 


 

память для comment выделяет teamcenter, а вы ее должны освободить.
писать в commet както не правильно.
тогда так.
елси comment==NULL выделяйте память. если пустой то освобождайте а потом выделяйте.

это место в другой dll отрабатывает без ошибок, закоментил

if (comment == NULL || !strcmp((*comment), "")) {
        strcpy((*comment), "(нет)");
    }

но результат тот же

Ссылка на сообщение
Поделиться на других сайтах


будет без ошибок если if не выполнится

 buffer = *os_username;
 char *t = buffer[0];
 strcat(t, TUPOLEV); 
тоже самое с памятью.

 

 

 

И вообще

Ссылка на сообщение
Поделиться на других сайтах

везде где вы делаете AOM_ask_value_...
смотрите документаци.
если возвращает массив иили строку надо делать MEM_free.
Т.к. память выделяется тимцентром, в противном случае это видет к утечке памяти.

Ссылка на сообщение
Поделиться на других сайтах
В 19.11.2018 в 15:29, koner сказал:

везде где вы делаете AOM_ask_value_...
смотрите документаци.
если возвращает массив иили строку надо делать MEM_free.
Т.к. память выделяется тимцентром, в противном случае это видет к утечке памяти.

Доброго времени суток!

судя по всему я что-то не вижу,

делаю MEM_free(t);где  char *t .

в этом месте вылетает....

MEM_free(buffer);
MEM_free(epm_proposed_reviewers); эти обе строчки отработали без проблем

Ссылка на сообщение
Поделиться на других сайтах

MEM_free это нужно, но без него вылетать не будет.
Ошибку я вам указал тут:
 

В 19.11.2018 в 15:13, koner сказал:

buffer = *os_username;
 char *t = buffer[0];
 strcat(t, TUPOLEV);

 

тимцентр вам возвращает указатель на строку с выделенной памятью,
а вы пытаетесь прилепить к ней еще строку (strcat) в итоге вылезаете за выделенную область памяти.

Ссылка на сообщение
Поделиться на других сайтах
20 часов назад, koner сказал:

MEM_free это нужно, но без него вылетать не будет.
Ошибку я вам указал тут:
 

 

тимцентр вам возвращает указатель на строку с выделенной памятью,
а вы пытаетесь прилепить к ней еще строку (strcat) в итоге вылезаете за выделенную область памяти.

Спасибо!

все исправлено!

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • AlexKaz
      Нагуглил старый список отличий профкарт от GTX, кому интересно   А тут - полный список важных для производительности карты настроек на потыцкать https://www.goengineer.com/blog/optimizing-solidworks-for-faster-performance
    • AlexKaz
      @eljer0n, в настройках драйвера и графики игровой карты попробуйте вручную выставить на максимум все видеоэффекты и привязать карту к приложению принудительно (а то у Вас симптомы как софтверного рендера на CPU). Пример: https://www.mlc-cad.com/solidworks-help-center/how-to-force-solidworks-to-use-your-graphics-card/ По дефолту там что-то среднее, скорее всего. Не поможет - установить дрова к профкартам и там покрутить настройки, сменить версию Windows с 11 на 10. И только потом можно смотреть на профкарты. Также потестить опции в самом солиде. Вот тут ниже рекомендуют включить Enable petformance pipeline и не юзать SW 2018 https://www.engineering.com/story/20-to-30-times-faster-graphics-response-with-solidworks-2019s-new-graphics-engine
    • Killerchik
      Лихой Вы, однако....   Да, это уже сильно сложнее.
    • neon0404
      Да, действительно, огромное спасибо! Ошибка новичка) Не тот режим визуализации был
    • Максим604
      @Killerchik ну да, пишу реальную и стойка переправит, а если пишу руками, то считать для центра.  Просто резьбу писал или через переменные или через turn. И подачу считал как на обычную фрезеровку.   Ещё раз спасибо) 
    • gudstartup
      100% taxid - это не совершенно секретная инфа.  а вот корпоративный ящичек у этой же фирмы посложнее  
    • Killerchik
      Скорость я бы поставил метров 15-20. Подача - лучше измерить биение зубьев прям индикатором на станке. В идеале, если биение между соседними зубьями менее трети подачи на зуб, то эту самую подачу я бы поставил порядка 2-3 соток на зуб. Фрезеруйте так же, за 2 прохода, если это не прям супер критично для времени выполнения УП.
    • Alexejswt
      Все работает.  Job-1.inp
    • Killerchik
      Простой вопрос - Вы материально гарантируете, что компании-обладателю этого TaxID это ничем не грозит?
    • Killerchik
      По Вашему описанию - как раз наоборот. Считайте реальную подачу, а стойка скорректирует исходя из диаметров. У меня на фрезере точно так же.
×
×
  • Создать...