Вопрос № 87994: Здравствуйте. Написал программу по графике. Но появилась одна проблема!(:
Выдаёт ошибку на каждом цикле for
Содержание ошибки : Functions containing for are not expanded inline
И вот таких ошибок столько, сколько этих циклов. Подска...Вопрос № 88085: Доброе время суток, Эксперты!
Есть простенькая dll с одной экспортируемой функцией. Никаких классов, никаких ресурсов. Просто функция, складывающая а и б. Как вызвать эту функцию в проекте на С++? Меня интересует динамическое подключение. Хотя, л...Вопрос № 88150: Как в C++ Builder 6 отловить исключение переполнения? У еня почему-то не работает этот кусок (напримре если ввести 9999 в степени 999 оно не влезет в long double). ...Вопрос № 88163: здрасте!
А не могли бы подсказать, существует ли готовые таблицы в С++.
Или как их нарисовать сплошными линиями!!! И ещё какие есть офигенные фишки с графикой?Какими можно хделать линии!!! ...Вопрос № 88166: Помогите пожалуйста с этим, программу надо реализовать на языке C
1. Написать функцию create_array, которая используется для динамического выделения памяти для массива. Функция имеет два аргумента:
а) размер элементов массива;
б) чи...
Вопрос № 87.994
Здравствуйте. Написал программу по графике. Но появилась одна проблема!(:
Выдаёт ошибку на каждом цикле for
Содержание ошибки : Functions containing for are not expanded inline
И вот таких ошибок столько, сколько этих циклов. Подскажите пожалуёста в чём проблема.Может я что нить недопонимаю в графике!
Отправлен: 22.05.2007, 03:36
Вопрос задал: VadMe (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Allex
Здравствуйте, VadMe!
Это сообщение о том, что для функций, которые содержат циклы, не может быть выполнена оптимизация, которая заключается в подстановке тела функции в место её вызова (inline).
Эта ситуация, вообще говоря, не является ошибкой - отсутствие оптимизации просто снижает скорость выполнения программы.
Если компилятор в данном случае выдает именнно сообщение об ошибке, а не предупреждение, возможно, у Вас установлена опция считать предупреждения ошибками. Подробнее можно сказать только при наличии дополнительной информации - какой компилятор используется.
Ответ отправил: Allex (статус: 10-ый класс)
Ответ отправлен: 22.05.2007, 07:17 Оценка за ответ: 5
Отвечает: Ilkras
Здравствуйте, VadMe!
скорее всего вы пишете на С++ и написали тело функции внутри определения класса, в таком случае компилятор предполагает, что функция имеет атрибут inline - то есть тело функции подставляется вместо ее вызова (как макро в С).
Попробуйте вынести тело функции в срр файл.
Удачи
Приложение:
Ответ отправил: Ilkras (статус: 10-ый класс)
Ответ отправлен: 22.05.2007, 08:49
Вопрос № 88.085
Доброе время суток, Эксперты!
Есть простенькая dll с одной экспортируемой функцией. Никаких классов, никаких ресурсов. Просто функция, складывающая а и б. Как вызвать эту функцию в проекте на С++? Меня интересует динамическое подключение. Хотя, любая информация будет полезна.
Жду ваших ответов.
Отправлен: 22.05.2007, 16:19
Вопрос задал: Vitally (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Ilkras
Здравствуйте, Vitally!
Здравствуйте, Vitally!
прилагаю пример из MSDN, надеюсь там все понятно. Если будут сопросы - спрашивайте в форуме.
Удачи
Приложение:
Ответ отправил: Ilkras (статус: 10-ый класс)
Ответ отправлен: 22.05.2007, 16:36
Отвечает: Tamashev Denis M
Здравствуйте, Vitally!
Ужа какой раз советую почитать всем C++ Глазами хакера!
Там и про сеть и про dll и т.д
=)
Удачи =)
Ответ отправил: Tamashev Denis M (статус: 4-ый класс)
Ответ отправлен: 22.05.2007, 18:06
Отвечает: kool
Здравствуйте, Vitally!
Смотри в сторону ф-ций LoadLibrary() и
GetProcAdress(); Еще нужно знать как
объявить указатель на нужную ф-цию из библиотеки.
Удачи!
--------- I am.
Ответ отправил: kool (статус: Студент)
Ответ отправлен: 22.05.2007, 18:49
Вопрос № 88.150
Как в C++ Builder 6 отловить исключение переполнения? У еня почему-то не работает этот кусок (напримре если ввести 9999 в степени 999 оно не влезет в long double).
Приложение:
Отправлен: 22.05.2007, 22:27
Вопрос задал: WraiZ (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Vest
Здравствуйте, WraiZ!
строка accum = pow(9999, 999); выкидывает окно со словами pow: OVERFLOW error. но это не идёт как исключение.
в помощи по pow сказано, когда возникает переполнение, то функция возвращает число "HUGE_VAL (pow) or _LHUGE_VAL (powl)". В частности если продебуггить, то получается +INF. обработку таких ошибок (описано ниже) можно осуществить через " _matherr and _matherrl". в принципе для твоих нужд согласно примера я переделал эту функцию так:
благодаря чему выскакивает именно твоё исключение, а если переполнение возникает не по вызову функции, например так: accum = pow(999, 99) * 9999999 * 9999999;
то компилятор сразу выкидывает это исключение, миную функцию, так как она годиться только для математических функций.
--------- "Халявы не бывает" (c)
Ответ отправил: Vest (статус: 4-ый класс)
Ответ отправлен: 23.05.2007, 10:54 Оценка за ответ: 4
Вопрос № 88.163
здрасте! А не могли бы подсказать, существует ли готовые таблицы в С++.
Или как их нарисовать сплошными линиями!!! И ещё какие есть офигенные фишки с графикой?Какими можно хделать линии!!!
Отправлен: 23.05.2007, 00:02
Вопрос задал: VadMe (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Vest
Здравствуйте, VadMe!
Если говорить про готовые стандартные компоненты, то в C++ Builder есть TDrawGrid и TStringGrid.
если же рисовать, то почитай в той же помощи про объект TCanvas. если ещё сложнее, то можно использовать функции WinAPI. возможностей побольше даст, но усложнит само использование. Почитай про GDI, про DC (device context). если объяснить попроще, то благодаря Canvas (холсту, канва) скрываются все манипуляции с контекстом устройства.
То есть какими сделать линии.... это всё зависит от свойств Pen и Brush, цвет, вид и т.д.
Но если интересуют современные графические возможности, то рекомендую почитать информацию о GDI+ (GDI Plus). но в Си Билдере хоть и есть заголовки GdiPlus.h, но библиотеки GdiPlus.lib нет :( а потому необходимо подправить это дело руками. Или вообще перейти на MS Visual Studio (там GDI plus есть :) )
--------- "Халявы не бывает" (c)
Ответ отправил: Vest (статус: 4-ый класс)
Ответ отправлен: 23.05.2007, 11:11 Оценка за ответ: 4
Вопрос № 88.166
Помогите пожалуйста с этим, программу надо реализовать на языке C
1. Написать функцию create_array, которая используется для динамического выделения памяти для массива. Функция имеет два аргумента:
а) размер элементов массива;
б) число элементов в массиве.
Функция возвращает указатель на выделенный блок (тип void*).
2. Написать функцию main в которой:
а) определить указатель ptr на тип int и такой указатель ptr1, что им можно пользоваться как именем двумерного массива 3*2 элементов типа int, т.е. обращать-ся к элементам с помощь ptr1[i][j];
б) с помощью функции create_array выделить память для четырех элементов типа int и присвоить адрес начала выделенного блока указателю ptr;
в) в цикле ввести значения элементов (как элементов массива) и распечатать их (в виде ptr[0]=... ptr[1]=... и т.д.).
б) с помощью функции create_array выделить память для шести элементов типа int и присвоить адрес начала выделенного блока указателю ptr1;
в) в цикле ввести значения элементов (как элементов двумерного массива) и рас-печатать их (в виде ptr[0][0]=... ptr[0][1]=... и т.д.).
Отправлен: 23.05.2007, 00:27
Вопрос задал: Vitaly89 (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Ilkras
Здравствуйте, Vitaly89!
1) если я не сильно ошибаюсь, то библиотечная функция calloc и есть ваша create_array
2) опять же, если не сильно ошибаюсь - разномерные массивы в С идентичны, т. е. int[6] и int[3][2] это одно и то же и имя массива в обоих случаях имеет тип int *
вводить и выводить можно так:
int i,j, * ptr, *ptr1;
char str[128];
for(i=0;i<3;i++)
for(j=0;j<2;j++)
{
ptr[i][j] = atoi(gets(str));//input
printf("array[%1d][%1d] = %d
", i, j, ptr[i][j]); //output
}
Ответ отправил: Ilkras (статус: 10-ый класс)
Ответ отправлен: 23.05.2007, 00:47
Отвечает: Терсков Сергей
Здравствуйте, Vitaly89!
Код в приложении. Но такой код использовать крайне небезопасно, поэтому я бы не советовал мудрить с подобными конструкциями.
Приложение:
Ответ отправил: Терсков Сергей (статус: 10-ый класс)
Ответ отправлен: 23.05.2007, 04:25