Callback function C++ для библиотеки DLL

Возникла проблема с Callback функцией. Точнее с её работой. Пишу DLL файл вычисления рядной функции, которая сходится при [-1;1]. Но пользователь может вводить любые числа. Так как функция рядная и сходится при [-1;1], то при вводе пользователя других x функция счета ряда начинает долго работать. Можно ли это отловить с помощь Callback функции и передать в основной файл сообщение об этом. Код dll

double sqrt(double x, double eps)
{
    double t = 1, s = 1;
    for (int k = 1; abs(t) > eps; ++k)
    {
        t *= x * (3 - 2 * k) / (2 * k);
        s += t;
    }
    return s;
}
extern "C" __declspec(dllexport)
double myf_1A(double a, double x, double eps)
{
    return(sqrt(x, eps));
}
extern "C" __declspec(dllexport)
double myf_math(double a, double x)
{
    return (sqrt(1 + x));
}
extern "C" __declspec(dllexport)
const char* FName()
{
    return "sqrt(1+x)";
}

Связь с основным файлом

#define _CRT_SECURE_NO_WARNINGS
#include <iostream> 
#include <string>
#include<cmath>
#include <iostream>
#include <windows.h>
#include <vector> 
#include <locale.h>
using namespace std;
int main()
{
    string* head = new string[5];
    int f = 0;
    HINSTANCE mydll;
    string namedll = "Dll1";
    if (!LoadLibraryExA(namedll.c_str(), 0, LOAD_LIBRARY_AS_DATAFILE))
    {
        cout << "Functions were not loaded" << endl;
        return 0;
    }
    head[0] = "x"; head[1] = "MyFunction(x)"; head[2] = "Function(x)"; head[3] = "delta"; head[4] = "epsilon";
    mydll = LoadLibraryA("DLL1");
    if (mydll == NULL)
    {
        cout << "error" << endl;
        return 0;
    }

    typedef double(*NFun)(double, double, double);
    NFun dell = (NFun)GetProcAddress(mydll, "myf_1A");
    typedef double(*funcfromlibrary)(double, double);
    funcfromlibrary dell1 = (funcfromlibrary)GetProcAddress(mydll, "myf_math");
    typedef const char* (*FName)();
    FName Name = (FName)GetProcAddress(mydll, "FName");
    if (!(mydll && dell && dell1 && Name))
    {
        cout << "Error in library" << endl;
        system("pause");
        exit(0);
    }
    ~~~

Ответы (0 шт):