Современные технологии автоматизации» («СТА») —  журнал для квалифицированных специалистов по промышленной автоматизации Форум СТА — современные технологии автоматизации Домашняя страница
Домашняя страница форума CTA Домашняя страница форума CTA > II. АСУТП и SCADA > Теория и практика автоматизации
  Активные темы Активные темы
  FAQ FAQ  Искать в форуме   Зарегистрироваться Зарегистрироваться  Вход в систему Вход в систему

Драйвер t13.dll в TraceMode

 Ответить Ответить
Автор
Сообщение
archer84 Смотреть выпадающим
Новичок
Новичок


Присоединился: 16 Февраль 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 25
Свойства публикации Свойства публикации   Ответить, цитируя автора - archer84 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Драйвер t13.dll в TraceMode
    Опубликовано: 10 Июнь 2008 14:50
Здравствуйте. Изучаю разработку драйвера для TraceMode типа t13.dll. В качествен примера взял код описанный в справке по данной теме. Мне сказали, что библиотека, поставляемая с ТМ содержит теже функции, что и в примере, однако после компиляции кода из примера и земены существующей библиотеки на мою профайлер вылетает с ошибкой 80080005 (сообщение от DCOM об ошибке "Server execution failed"). Как я понимаю это из-за моей замены. Подскажите, кто сталкивался, какие существуют нюансы объявления экспоритруемой функции для использования ее в библиотеке для ТМ. Для эксперимента пропустил мою и примерную библиотеку через tdump. В секции export различий вообще нет. На форуме ТМ мне сказали, что для квалифицированного программиста указанной в справке информации достаточно, но я не квалифицированный и чувствую так им и не стану никогда.
Наверх
I345 Смотреть выпадающим
Новичок
Новичок


Присоединился: 11 Июнь 2008
Категория: Rwanda
Online Status: Offline
Публикации: 3
Свойства публикации Свойства публикации   Ответить, цитируя автора - I345 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 16 Июнь 2008 15:08

Попробуй получить помощь от Adastrы. Или запроси помощь на других форумах - АСУТП, АВОК.

 

Игорь
Наверх
archer84 Смотреть выпадающим
Новичок
Новичок


Присоединился: 16 Февраль 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 25
Свойства публикации Свойства публикации   Ответить, цитируя автора - archer84 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 17 Июнь 2008 14:26
Первоначально опубликовано I345

Попробуй получить помощь от Adastrы. Или запроси помощь на других форумах - АСУТП, АВОК.


 


Адастра открещивается,говорят, что не могут сопровождать разработку драйверов пользовательских. А на счет других форумов, предполагаю, что реакция в них будет точно такая же.
Наверх
MuadDib Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 27 Июль 2006
Online Status: Offline
Публикации: 304
Свойства публикации Свойства публикации   Ответить, цитируя автора - MuadDib Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 18 Июнь 2008 07:23
Я dll для ТМ5 не разрабатывал, однако приходилось немного плясать с разработкой dll для других целей. При этом я использовал не tdump, а Dependency Walker (depends.exe, входит в комплект поставки Windows, см. папку Tools на диске с дистрибутивом ОС).
depends.exe позволяет просматривать имена входящих в DLL функций как при наличии decorate, так и при отсутствии. Необходимо просмотреть исходную dll и вашу в обоих режимах и сравнить результаты.
Вероятно, то же самое можно сделать и в вашей программе tdump, но не берусь этого утверждать, т.к. с этой прогой не работал.
Теория - это когда все знаешь, но ничего не работает.
Практика - это когда все работает, но никто не знает как.
Наверх
archer84 Смотреть выпадающим
Новичок
Новичок


Присоединился: 16 Февраль 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 25
Свойства публикации Свойства публикации   Ответить, цитируя автора - archer84 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 26 Июнь 2008 07:01
В том то и дело, что имена вызываемые из моей dll и оригинальной идентичны, что и подтвердила рекомендованная вами программа, но спасибо за попытку помочь.
Наверх
MuadDib Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 27 Июль 2006
Online Status: Offline
Публикации: 304
Свойства публикации Свойства публикации   Ответить, цитируя автора - MuadDib Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 26 Июнь 2008 10:49
Насколько я понял, вы пытались откомпилировать следующий кусок кода:

FILE *fj;

void t13_start()

{

}

void t13_stop()

{

}

void t13_open()

{

fj=fopen("e:\\aaa","a");

}

void t13_close()

{

fclose(fj);

}

int t13_write(char *name,IA &ia,float v)

{

fprintf(fj,"%s %g\n",name,v);

return(0);

}

int t13_read(char *name,IA &ia,float &v)

{

v=(time(NULL) & 0x00ff);

return(0);

}

int t13_fwrite(char *name,IA &ia,float v)

{

return(0);

}

int t13_fread(char *name,IA &ia,float &v)

{

return(0);

}

Возникают следующие вопросы:

1. Какой компилятор?
2. Создавался ли def-файл? Если нет, то компилятор "украшает" (decorate) имена функций в библиотеке по своему усмотрению, что, как правило, делает невозможным вызов функций из библиотеки.

Поэтому, если вы не создавали такой файл (в справке ТМ об этом не написано), откройте вашу библиотеку в depends.exe и просмотрите список функций при следующих настройках:

а) опция Undecorate C++ Functions активна (меню view)
б) опция Undecorate C++ Functions не активна

Если при отсутствии def-файла вы получите в случаях а) и б) одинаковую картинку, то я даже не знаю что сказать
Теория - это когда все знаешь, но ничего не работает.
Практика - это когда все работает, но никто не знает как.
Наверх
archer84 Смотреть выпадающим
Новичок
Новичок


Присоединился: 16 Февраль 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 25
Свойства публикации Свойства публикации   Ответить, цитируя автора - archer84 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 27 Июнь 2008 20:50
На счет компилятора ничего с уверенностью сказать не могу, стандартный, идущий с MS Visual Studio 2005, однако мысль вашу понял, но и тут фокус. Файл def не создается, функции сами располагаются в необходимом порядке, я пробовал вызывать эту библиотеку из своей простенькой программы, все нормально работает. При любом значении опции функции выглядят совершенно идентично. Сам удивляюсь, что там такого придумали.
Наверх
 Ответить Ответить

Переход на форум Права доступа на форуме Смотреть выпадающим

Bulletin Board Software by Web Wiz Forums® version 9.64
Powered by Web Wiz Forums Free Express Edition
Copyright ©2001-2009 Web Wiz