Dll: создание необычной функции

361
11 мая 2017, 13:24

Как создать функцию в dll такую, что при обращении к этой функции извне часть кода функции выполняется только при первом обращении к ней, а часть - при каждом обращении к ней?

Answer 1

Смотря что понимать под "первым выполнением".

Если в пределах одного подключения программы - достаточно static флага - типа

void firstCall()
{
    static int i = 0;
    if (i)
    {
        cout << "Next call\n";
    }
    else
    {
        cout << "First call\n";
        ++i;
    }
}
int main()
{
    firstCall();
    firstCall();
    firstCall();
    firstCall();
    firstCall();
}

Если "первое обращение" означает что-то иное - то точно определите, что именно.

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

READ ALSO
CTEST написание тестов

CTEST написание тестов

Не могу написать написать тесты для функций выдает ошибку

379
Символ &ldquo;ножницы&rdquo; из Unicde

Символ “ножницы” из Unicde

Для вывода символа "ножницы" из Unicode запрашиваю их по коду вот так:

248
Отдает undefined

Отдает undefined

consolelog(element) отдает результат undefined

269