Нет инициализации графического режима в Borlandc++ под ДОС

Тема в разделе "Общие вопросы по С и С++", создана пользователем Brausman, 1 апр 2009.

  1. Brausman

    Brausman Гость

    Привет всем,проблема такая после относительно долгих вычислений стараюсь инициализировать графический режим,но он выдает ошибку - Not enough memory to load driver (не хватает памяти для загрузки драйвера),хотя если закоментить эти вычисления все проходит нормально и gdriver возращает 9(вместо - 5).
    В чем проблема подскажите плиз smile smile smile
    Уже задолбался,ток эта проблема,ниже приведен код(то что закоментированно и есть долгие вычисления):
    Код (Text):
    //**********************************************************************\\
    //************************* ОСНОВНАЯ ПРОГРАММА *************************\\
    //**********************************************************************\\
    void main(void){  // начало основной программы
    clrscr();
    //------- Инициализация глобальных переменных и структур ----------------
    init_const();
    char *s = new char [100];
    double gmin,gmax,gstep,Time_Field,Time_Step;
    matrix cof,kd1,dd1,rd1,p,qq,r;  //Матрица коэффициентов
    int i,j;
    double k,tau;
    matrix kd,dd,rd;//╠рЄЁшЎ√ юс•хъЄр ш тэх°эхую тючьє∙хэш 
    matrix T;//- ьрЄЁшЎр тїюфэ√ї ╥,╥1,╥2 ш Є.ф. ъръющ яюЁ фюъ юс•хъЄр.╥.ъ. хёыш яюЁ фюъ сюы№°х 1 ¤Єю сєфхЄ тхъЄюЁ шч 2-ї ¤ыхьхэЄют
    //******************* Загрузка параметров из файла *********************\\
    fi=fopen("config.txt","r");
    if (!fi) {get_par_error(str_e1);}
    //считываем переменные настроек объекта
    h=get_par();
    m=get_par();
    int minco=(int)get_par();   //╠шэшьры№э√щ шэфхъё ъю¤ЇЇшЎшэхЄют
    maxco=(int)get_par();
    cof.n=(int)get_par();
    int nn = cof.n;
    cof.m =(int)get_par();
    por_object = (int)get_par();//╧юЁ фюъ эр°хую юс•хъЄр
    int ii = -1;
    fgets(s,100,fi);
    do{
    fgets(s,100,fi);
    char *p = s;
    int jj=0;
    ii++;
    do{
    cof.data[ii][jj++]=atof(p);
    }while ((p = strchr(p,' ')) || (p = strchr(p,'//')) , p++);
    }while (ii!=nn-1);
    time_change=(int)get_par();
    //переменные настройки графика
    gmin=get_par();
    gmax=get_par();
    gstep=get_par();
    Time_Field=get_par();
    Time_Step=get_par();
    CreatePlotFile=get_par();
    //переменные имитации входного воздействия и внешнего возм
    u_sim=get_par();
    uf_sim=get_par();
    ufw=get_par();
    ufA=get_par();
    randuf=get_par();
    fclose(fi);
    //------------------------------------------------------------------------
    //Если разрешено создавать файл данных графика, то открываем его
    if (CreatePlotFile)
    {
    Plot=fopen("plot.dat","w");
    if (!Plot){
    fclose(Plot);
    fprintf(Pr,"Файл графика не создан!\n");
    }
    }
    //---------------------------------------------------------------------
    iii = minco - 1;
    while (iii < maxco) {//─юфхырЄ№ чряюыэхэшх ьрЄЁшЎрьш ъю¤ЇЇшЎшхэЄют
    k=cof.data[0][iii];
    T.n = 1; T.m = por_object + 1;
    T.data[0][0] = 0;//╬сэєы хь яхЁт√щ ¤ыхьхэЄ
    for (j = 0;j < por_object;j++) {
    T.data[0][j + 1] = 1/cof.data[j + 1][iii];
    }
    tau=cof.data[cof.n - 1][iii];

    //====================================================================
    //╘юЁьшЁєхь тхъЄюЁр эхяЁхЁ√тэющ ёшёЄхь√ т ЇюЁьх тїюф-т√їюф фы юс•хъЄр 2-ую яюЁ фър
    //====================================================================
    //p - d - тхъЄюЁ яЁш т√їюфэ√ї яхЁхьхээ√ї фшЇЇхЁ-эюую єЁртэхэш
    PbyRoots(&T,&p);

    //qq - k -тхъЄюЁ яЁш тїюфэ√ї яхЁхьхээ√ї фшЇЇхЁ-эюую єЁртэхэш

    qq.n = 1; qq.m = 1;
    qq.data[0][0] = k;
    //r - тхъЄюЁ яЁш тэх°эхь тючьє∙хэшш фшЇЇхЁ-эюую єЁртэхэш

    r.n=r.m = 1;
    r.data[0][0] = m;
    p = fliplr(p);
    //╧хЁхтюфшь юс•хъЄ шч эхяЁхЁ√тэющ т фшёъЁхЄэє■ ёшёЄхьє
    ToDisk(&p,&qq,&r,h,&dd1,&kd1,&rd1);//Perevod iz
    for (j = 0;j < dd1.m;j++) {
    dd.data[iii][j] = dd1.data[0][j];
    kd.data[iii][j] = kd1.data[0][j];
    rd.data[iii][j] = rd1.data[0][j];
    }
    iii++;
    }  
    G_Init();       // Инициализация графического режима
    Ну и сам код инициализации:
    Код (Text):
    void G_Init(){
    int gdriver = Detect, gmode, errorcode;
    gmode=0;
    //gdriver=0;
    initgraph(&gdriver, &gmode, "");
    errorcode = graphresult();
    if (errorcode != grOk)
    {
    printf("Graphics error: %s\n", grapherrormsg(errorcode));
    printf("Press any key to halt:");
    getch();
    exit(1);
    }
    }
    Хочу напомнить что вычисления перед инициализацией граф.режима очень большие и если вставить G_Init(); перед while (iii < maxco) { - то хотя бы появится черный экран хотя от этого не легче((
    Кто знает в чем проблема отпишитесь плиз очень буду презнателен)))
    Програмлю на BorlandC++ 3.1 for DOS
     
Загрузка...
Похожие Темы - Нет инициализации графического
  1. anna
    Ответов:
    0
    Просмотров:
    7
  2. paxac
    Ответов:
    4
    Просмотров:
    39
  3. paxac
    Ответов:
    0
    Просмотров:
    43
  4. Scan
    Ответов:
    0
    Просмотров:
    72
  5. diod_
    Ответов:
    9
    Просмотров:
    3.276

Поделиться этой страницей