Путь в графике на C

Некоторое время я использовал в своей программе graphics.h. Я столкнулся с проблемой на пути, но позже решил ее. Я ввел неправильный путь в функции initigraph(), но программа все еще работала. Как это возможно?

Код1:

#include <graphics.h>
#include <stdio.h>
#include <conio.h>

int main()
{
    char a[]  = "vyfm";
    int gd = DETECT, gm;
    initgraph(&gd, &gm, a);

    line(100,100, 200, 200);

    getch();
    closegraph();

    return 0;
}

Код 2:

#include <graphics.h>
#include <stdio.h>
#include <conio.h>

int main()
{
    char a[]  = "C:\\TC\\BGI";
    int gd = DETECT, gm;
    initgraph(&gd, &gm, a);

    line(100,100, 200, 200);

    getch();
    closegraph();

    return 0;
}

Боже мой!!! Это ДРЕВНИЙ Turbo C API. Язык C++ (не говоря уже о вычислениях в целом) с тех пор сильно изменился ... Что касается вашего вопроса: initgraph() инициализирует графическую систему и загружает некоторые файлы времени выполнения из каталога BG (Borland Graphics). Я думаю, вашему exe просто не нужен ни один из этих файлов времени выполнения;)

paulsm4 17.11.2018 07:08

Я использую кодовые блоки

user9953286 17.11.2018 07:09

Но как это возможно, что функция initgraph не требует никакого каталога?

user9953286 17.11.2018 07:12

@KeshavSaraf C:\\TC\\BGI явно Turbo C, ... BGI работает только под MS-DOS, поэтому, если у вас действительно есть CodeBlocks, на какой BGI у вас есть ОС или на какой таргетинг? Это может ответить на ваш вопрос, поскольку разные версии BGI могут по-разному обрабатывать параметры. IIRC WinBGI имеет другой заголовок, поэтому у вас есть что-то еще ... graphics.h бессмысленен, поскольку почти все движки gfx имеют такой файл ... ваш код явно древний BGI

Spektre 17.11.2018 09:58

Вы задавали аналогичный вопрос здесь. ПЕЧАЛЬНЫЙ И НЕПРАВИЛЬНЫЙ ФАКТ: даже если ваша программа делает что-то «не так» ... вы НЕ БУДЕТ (обязательно) получаете ошибку компиляции, а МОЖЕТ НЕ даже терпит неудачу во время выполнения (по крайней мере, сначала). Может показаться, что это работает. Это ошибки типа ХУДШИЙ - те, которые ваш клиент находит раньше, чем вы :( Всегда остерегайтесь "неопределенного поведения".

paulsm4 17.11.2018 23:24
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
801
1

Ответы 1

Если вы говорите, что используете кодовые блоки, будьте осторожны при компиляции кода, а затем запустите его. Если вы просто используете команду «запустить» в кодовых блоках, она просто запустит ваш последний exe, даже если текущий файл был изменен. EXE будет изменен, когда вы успешно скомпилируете свой код. В этом случае ваш код должен компилироваться, но я думаю, вы пропустили этот шаг.

Я всегда использую вариант сборки и запуска.

user9953286 17.11.2018 07:15

Другие вопросы по теме