Вопрос № 70315: Здравствуйте, уважаемые эксперты.
Философский вопрос, а что значит буква "L" в LPVOID, LPCSTR и прочих? Ведь можно и PVOID создавать и вроде нет разницы. В чем смысл этой "L"? =)...Вопрос № 70331: Здравствуйте!
Подскажите пожалуйста win32 аналог gcc.
Или какой-нибудь другой мощный c, не visual.
Нужно для отладки cgi под denwer, и написания локальных приложени, с возможностью
принимать и отправлять почту,
скач...Вопрос № 70346: Пожалуйста помогите. Щас петеучиваюсь с C++ Builder на Visual C++.Столкнулся с огромной проблемой компилятор не хочет понимать код при програмировании проэкта с исползованием Forms Win32.
Есть структура:
struct Dot
{
int Coordinates[...Вопрос № 70377: Здравствуйте Уважаемые эксперты!
С прошедшими праздниками!
...и задачка
Даны вещественные массивы A[15], F[15]. Для каждого массива опpеделить наибольшее из отpицательных значений....Вопрос № 70404: У меня вопрос, касающийся C++ и библиотеки Qt.
У меня есть простой Widget, на котором я рисую графику (неважно какую).
Раньше я делал просто: в одном классе Widget совмещал код рисования и код обработки (т.е. совмещал вид и контроллер). ...Вопрос № 70433: Здравствуйте, Уважаемые эксперты! Помогите пожалуйста решить вот такую задачку на С++:
Вычислить значение логического выражения. T - true, F - false. Например: %(&(T,F),T) равно T. % - OR, & - AND. В стек заносятся значения TF и действия....
Вопрос № 70.315
Здравствуйте, уважаемые эксперты.
Философский вопрос, а что значит буква "L" в LPVOID, LPCSTR и прочих? Ведь можно и PVOID создавать и вроде нет разницы. В чем смысл этой "L"? =)
Отправлен: 10.01.2007, 17:29
Вопрос задал: Palpatin (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Madproger
Здравствуйте, Palpatin!
L - long
Исторически сложилось. Когда были 16-битные машинки это означало
LPVOID = 32 bit
а
PVOID = 16 bit
На данный момент вроде нет разницы
LPVOID = PVOID = void*
--------- И будет вам счАстиЕ!
Ответ отправил: Madproger (статус: 10-ый класс)
Ответ отправлен: 10.01.2007, 17:39
Отвечает: Tek
Здравствуйте, Palpatin!
Это историческое наследие:
На 16-битных системах были такие понятия как ближний указатель и дальний (far или long)
Дальний состоял из двух 16-битных значений - адрес и смещение в блоке,
а ближний - просто смещение, которое определяло положение области памяти в адресном пространстве программы (тогда программы без дополнительных телодвижений использовали адресное пространство памяти размером 2^16 байт (65535), для использования большей памяти требовались менеджеры памяти, которые умели адресовать ее блоками по 65к)
Теперь все указатели 32-битные и в таком делении отпала необходимость, но обозначения остались(можно сказать для совместимости)
--------- WinApi - жутко неудобные костыли, MFC и VCL - немногим полезнее, но ничего лучше еще не создано (C)Почти Уинстон Черчилль :)
Ответ отправил: Tek (статус: 6-ой класс)
Ответ отправлен: 10.01.2007, 17:50
Отвечает: Шинтяков Дмитрий Васильевич / Ratson
L означает Long, и досталась в наследие от 16-битных операционных систем, где были разные модели памяти, ограничение на объём одного объекта в 64Кб и прочие ужасы. Указатель разделялись на near и far (т.е. long).
Сейчас (в 32-битных системах) все указатели Long, так что разницы действительно нет.
Нужно для отладки cgi под denwer, и написания локальных приложени, с возможностью
принимать и отправлять почту,
скачивать и загружать файлы на web server.
Раньше писал на старом turbo c, но это было давно и не правда.
Сейчас хочу найти компилятор который будет работать с моими сорцами без заморочек.
Отвечает: Хватов Сергей
Здравствуйте, Талипов А Н!
Есть порт gcc под windows в составе проекта cygwin:
http://www.cygwin.com/
Ответ отправил: Хватов Сергей (статус: Студент)
Ответ отправлен: 10.01.2007, 19:30
Отвечает: Torsten
Здравствуйте, Талипов А Н!
mingw - аналог gcc под windows.
http://www.mingw.org/download.shtml
Основные пакеты, которые нужны для работы:
gcc-core
gcc-g++
mingw-runtime
binutils
Если еще понадобится для windows нужен
w32api
И утилита make тоже отдельно идет
mingw32-make
--------- #define MAGIC_NUMBER 0xdeface
Ответ отправил: Torsten (статус: 4-ый класс)
Ответ отправлен: 11.01.2007, 08:36
Вопрос № 70.346
Пожалуйста помогите. Щас петеучиваюсь с C++ Builder на Visual C++.Столкнулся с огромной проблемой компилятор не хочет понимать код при програмировании проэкта с исползованием Forms Win32.
Есть структура:
struct Dot
{
int Coordinates[3];
string Name;
vector<int>Lines;
}Template;
//И есть обьект:
vector<Dot>Dots;
Dots.push_back(Template)
/*Происходит глюк с инициацией переменных в Dots.Они не инициируются, хотя при создании консольного приложения с использованием этой структуры все работает нормально.
А почему нельзя в визуал с++ сделать Dots.push_back(), в билдере можно.
Как создать глобальную переменную внутри функции? */
Dots[0].Name = "sfdg";
Dots[0].Coordnates[0] = 0;
Отвечает: Melamed
Здравствуйте, Michael Stumbra!
Метод push_back в MSVC++ имеет параметр, ссылку на элемент вектора. Если элемент вектора класс, то он должен
перекрывать оператор присваевания элемента этого же класса. В вашем слу
чае код следует писать следущим образом (см приложение)
Приложение:
Ответ отправил: Melamed (статус: 9-ый класс)
Ответ отправлен: 10.01.2007, 21:04
Отвечает: kool
Здравствуйте, Michael Stumbra!
Все о чем ты написал - у меня на VC работает см. приложение.
А глобальная переменная не может быть "создана" внутри функции.
Ее обычно объявляют вне всех функций - в заголовочном файле.
Удачи!
Приложение:
Ответ отправил: kool (статус: 3-ий класс)
Ответ отправлен: 12.01.2007, 20:44
Вопрос № 70.377
Здравствуйте Уважаемые эксперты!
С прошедшими праздниками!
...и задачка
Даны вещественные массивы A[15], F[15]. Для каждого массива опpеделить наибольшее из отpицательных значений.
Отправлен: 10.01.2007, 22:46
Вопрос задала: Lena_25 (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: PROD
Здравствуйте, Lena_25!
double amax=0,fmax=0;
for(int i=0;i<15;i++){
if((a[i]<0)&&(a[i]>amax)||(amax=0)){amax=a[i];}
if((f[i]<0)&&(f[i]>fmax)||(fmax=0)){fmax=f[i];}
}
собственно и все
Ответ отправил: PROD (статус: 6-ой класс)
Ответ отправлен: 10.01.2007, 23:26
Отвечает: Терсков Сергей
Здравствуйте, Lena_25!
Смотрите код в приложении...
Приложение:
Ответ отправил: Терсков Сергей (статус: 4-ый класс)
Ответ отправлен: 11.01.2007, 03:37
Вопрос № 70.404
У меня вопрос, касающийся C++ и библиотеки Qt.
У меня есть простой Widget, на котором я рисую графику (неважно какую).
Раньше я делал просто: в одном классе Widget совмещал код рисования и код обработки (т.е. совмещал вид и контроллер). Делал примерно так: создаю нулевой таймер (когда очередь сообщений пуста) и на этот таймер вешаю код обработки графики. Пример в приложении 1.
Теперь я хочу разъединить эти вещи. Первое, что приходит на ум, да и советуют многие – это потоки. Поток подготавливает кадр, а окно показывает. Это правильно, или я в чём-то ошибаюсь? Ситуация осложняется тем, что у меня нет прямого доступа к функции перерисовки окна (paintEvent). И надо помнить о синхронизации. Примерный код в приложении 2.
Теперь суть вопроса. Код из прил.2 работает некорректно. Плохо со синхронизацией, окно плохо «слушается», и вообще просто плохо :)
Может кто-нибудь подскажет идею или, хотя бы, направление, в котором стоит двигаться?
Приложение:
Отправлен: 11.01.2007, 01:14
Вопрос задал: V1s0r (статус: 1-ый класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: ramok
Здравствуйте, V1s0r!
ваш случай
http://cartan.cas.suffolk.edu/qtdocs/threads-mandelbrot.html
The application consists of two classes:
* RenderThread is a QThread subclass that renders the Mandelbrot set.
* MandelbrotWidget is a QWidget subclass that shows the Mandelbrot set on screen and lets the user zoom and scroll.
Ответ отправил: ramok (статус: 7-ой класс)
Ответ отправлен: 11.01.2007, 23:41 Оценка за ответ: 5 Комментарий оценки: ramok, огромное спасибо. Теперь буду внимательней смотреть документацию по Qt :)
Вопрос № 70.433
Здравствуйте, Уважаемые эксперты! Помогите пожалуйста решить вот такую задачку на С++:
Вычислить значение логического выражения. T - true, F - false. Например: %(&(T,F),T) равно T. % - OR, & - AND. В стек заносятся значения TF и действия.
Отвечает: Tek
Здравствуйте, Чагина Наталья!
Задача сводится к простому разбору строки посимвольно даже, согласно простым правилам:
1. если встретился знак операции (% или &) - заносим в стек после него должна идти отркывающая скобка - если что то другое - ошибка
2. T и F - тоже в стек - после них запятая или закрывающая скобка - иначе ошибка
3. Когда встречаем закрывающую скобку - извлекаем из стека последние три элемента - это должны быть два агрумента в конце и первым - знак операции - иное - ошибка. Вычисляется конкретная операция, удаляются эти три элемента из стека и вместо них пишется результат.
Стек можно организовать как желаете - массивом, вектором, строкой и т. д.
--------- WinApi - жутко неудобные костыли, MFC и VCL - немногим полезнее, но ничего лучше еще не создано (C)Почти Уинстон Черчилль :)
Ответ отправил: Tek (статус: 6-ой класс)
Ответ отправлен: 11.01.2007, 09:59
Отвечает: Терсков Сергей
Здравствуйте, Чагина Наталья!
Попробуйте вот такой вариант. Класс стека взят из STL.
Приложение:
Ответ отправил: Терсков Сергей (статус: 4-ый класс)
Ответ отправлен: 12.01.2007, 06:23