Перейти к содержимому

Фотография

Пользовательские Функции В Vu-скриптах


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 nordveien

nordveien

    Новый участник

  • Members
  • Pip
  • 11 сообщений
  • ФИО:Татьяна
  • Город:Москва

Отправлено 03 августа 2007 - 13:44

Доброго всем дня.

Вопрос мой относится к нагрузочному тестированию (однако тему завожу здесь, т.к. в соответствующей ветке форума топиков настораживающе мало...)

Суть в следующем:
Имеется VU-скрипт.
Написаны пользовательские функции для его модификации.
В настоящий момент они и необходимые для них глобальные переменные находятся в самом скрипте, после строчки
#include <VU.h>
и до "тела скрипта", то есть до того, что получилось непосредственно после его генерации.
В этих условиях все компиляется и даже работает так, как задумано.

Естественным образом хочется эти функции загнать в библиотечные файлы. И включать их описания (в виде заголовочных файлов) во много VU-скриптов.

Вопрос, собственно: как это делается?

Порывшись в поиске, я нашла такую статью:
http://www.ibm.com/d...19_aneja_bhola/ ,

однако в ходе проделывания того, что в ней описано, мне осталось непонятным, в каком виде включать в заголовочный файл объявления функций.

Пусть в определении функции у меня строчки вида
string func foo (str_var)
string str_var;
{
...
}
Тогда если написать в заголовочном файле просто
string func foo (str_var);
оставляя str_var как формальную переменную,
при компиляции возникают ошибки вида "argument 1 type incompatible with declaration".
Возникают, такое впечатление, что для любой из имеющихся функций (каждый раз ошибка возникает только для одной, но если эту функцию загнать обратно в текст скрипта, ошибка возникает для другой).

Еще не очень понятен принцип объявления глобальных переменных в этом случае...
Если перенести все "как есть" из текста скрипта в заголовочный файл, объявляя глобальные переменные в самом начале, а потом их же использовать в объявлениях функций:
string str_var;
...
proc my_proc (str_var); 
...
то компилятор ругается на parse error'ы и incompatible type'ы.

Если комментить
//string str_var;
...
proc my_proc (str_var); 
...
то компилятор ругается меньше, но тогда переменная уже не глобальная, как я понимаю...

В общем, полагаясь сначала на интуицию, потом на эксперименты, мне так и не удалось сделать так, чтобы скрипт с заголовочным файлом и без тел моих функций компилялся.
Посему ищу адептов, обладающих тайным знанием и готовых им поделиться : )
  • 0

#2 Dmitry_NJ

Dmitry_NJ

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 3 122 сообщений
  • ФИО:Дмитрий Шевченко
  • Город:New Jersey, USA

Отправлено 04 августа 2007 - 03:57

Вопрос мой относится к нагрузочному тестированию (однако тему завожу здесь, т.к. в соответствующей ветке форума топиков настораживающе мало...)

Такая аргументация не катит. Есть подфорум, посвященный нагрузочному тестированию инструментами Rational. Вот туда подобные вопросы и помещайте. Его создали специально для подобного рода вопросов. Не надо превращать этот подфорум в братскую могилу.
  • 0
Дмитрий Шевченко

HP Software

#3 nordveien

nordveien

    Новый участник

  • Members
  • Pip
  • 11 сообщений
  • ФИО:Татьяна
  • Город:Москва

Отправлено 28 августа 2007 - 12:28

В общем, ответ на мой вопрос:

В .h файл
  • глобальные переменные выносятся, как есть,
  • объявления процедур выносятся в виде:
    proc pname (arg_list)
    arg_declar;
    {}
  • объявления функций выносятся в виде:
    [type] func fname [array_spec] (arg_list)
    arg_declar;
    {return ret_exp;}
как, собственно, и описано очень туманно в хелпе.
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных