Надо перекомпилировать старое приложение в Visual С++. Можно ли это автоматизировать. А если нет, то есть ли в Visual С++ аналог <graphics.h>
Regards
миграция кода из Turbo C++ в Visual С++
Правила форума
Пожалуйста, ознакомьтесь с правилами данного форума
Пожалуйста, ознакомьтесь с правилами данного форума
-
- Завсегдатай
- Сообщения: 251
- Зарегистрирован: 09 сен 2004, 23:58
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
-
- Завсегдатай
- Сообщения: 251
- Зарегистрирован: 09 сен 2004, 23:58
За ответ спасибо, хотя прояснил он малоvg писал(а):Конечно. WinAPI
(ред.) ПС. Regards

Если можно то на простом примере рисующем линию в консольном окне, что-то вроде этого:
Код: Выделить всё
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
void main(void)
{
int gd=DETECT,gm;
int X,Y,Color;
registerfarbgidriver(EGAVGA_driver_far);
initgraph(&gd,&gm,"");
setgraphmode(VGAMED); /* VGAMED ०¨¬ ¤«ï main menu */
X=getmaxx();
Y=getmaxy();
setbkcolor(0); /* black background */
Color=CYAN;
setlinestyle(DOTTED_LINE,0,1);
line(0,(Y+1-20)/2,X,(Y+1-20)/2);
EXIT:{ closegraph(); }
}
- dima
- Житель
- Сообщения: 690
- Зарегистрирован: 19 фев 2003, 19:26
- Откуда: Хабаровск->Toronto
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
Дима
и_ван,
Графику придётся переписывать. Для приложений, где нет особых требований к производительности - вполне подойдёт и WinAPI.
Можно, конечно, поппробовать написать обёртки апишных функций с интерфейсом борлнада. Я бы, скорее всего, переписал все "вхождения в коде" борландовского рисования. Возможно и расчётную часть, т.е. там где Вы определяете координаты графических примитиво, области вывода в окне, отсечения и т.д. - всё придётся переписывать. Но всё равно работа не с нуля, если есть хость борландовский код. Ясно, что и зачем делать.
Удачи.
Сильно ошибаешься. А VC, как и БС, как и версии здесь не причём.по-моему консольные апликации на VC 6 не работают в граф моде - только в текстовом
смотри в msdn раздел "Console Functions" или поищи GetConsoleDisplayMode или в google
_________________
и_ван,
Графику придётся переписывать. Для приложений, где нет особых требований к производительности - вполне подойдёт и WinAPI.
Можно, конечно, поппробовать написать обёртки апишных функций с интерфейсом борлнада. Я бы, скорее всего, переписал все "вхождения в коде" борландовского рисования. Возможно и расчётную часть, т.е. там где Вы определяете координаты графических примитиво, области вывода в окне, отсечения и т.д. - всё придётся переписывать. Но всё равно работа не с нуля, если есть хость борландовский код. Ясно, что и зачем делать.
Удачи.
-
- Завсегдатай
- Сообщения: 251
- Зарегистрирован: 09 сен 2004, 23:58
Спасибо. Вроде как ты прав. Судя по msdndima писал(а):по-моему консольные апликации на VC 6 не работают в граф моде - только в текстовом
смотри в msdn раздел "Console Functions" или поищи GetConsoleDisplayMode или в google
Console programs are developed with Console API functions, which provide character-mode support in console windows.
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
Вы нет тот мсдн читатет видать. Вот работающий код
Запускать надо не из ИДЕ только, шоб картинки увидеть.
Блин.
Код: Выделить всё
#include "stdafx.h"
#include <windows.h>
#include <conio.h>
void _tmain( void )
{
HWND hwnd;
SetConsoleTitle("ConsoleDrawing");
Sleep(50);
hwnd=FindWindow(NULL,"ConsoleDrawing");
if ( ! hwnd )
{
printf("\n Can't get hwnd. Press any key.");
getch();
return;
}
HDC hdc;
RECT rect;
hdc = GetDC( hwnd );
if ( hdc )
{
SelectObject(hdc, GetStockObject(WHITE_PEN));
MoveToEx(hdc, 0, 0, NULL);
LineTo (hdc, 300, 300);
SelectObject(hdc, GetStockObject(LTGRAY_BRUSH));
Ellipse(hdc, 0,0,200,200);
GetClientRect(hwnd, &rect);
DrawText(hdc, "We won!", -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
}
printf("\nPress any key...");
getch();
return;
}
Блин.
-
- Завсегдатай
- Сообщения: 251
- Зарегистрирован: 09 сен 2004, 23:58
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
Спасибо, конечно, за отзыв....
Но вот всё ж по существу..... Был вопрос. Для меня он звучал так:
- а можно ли так извратиться, чтобы ничего лишнего, типа, майн + ГДИ.
Был ответ:
- если нельзя, но хочется, то можно.
Поэтому, совет. Если Вы делаете это для работы, то выбросьте это из головы. Честно говорю. Мало ли, как можно что-то сделать, как можно извратиться. То, что я пропостил таки-да, работает, но это тупик.
Что-бы я сделал, если есть прога, которую надо реанимировать для нормальной работы под виндами.... У вас повторяю есть уже очень много - С-код работающей программы, где ясно и понятно, что, где и как должно работать. Это самое важное. А не то, как в конце концов и при помощи каких библиотек будут отрисовываться примитивы в каких окнах и при помощи каких заумных функций.
Поэтому предлагаю два варианта:
1) Сделать нормальное приложение на ВинАПИ, где есть нормальный ВинМайн, обработка месаг виндовз и т.д. Плюсы такие - будет работать быстро, ровно так, как Вы хотите, а не как-нить захребетная библиотека обёрток ГДИ делает это за Вашей спиной. Будет компилироваться для всех платформ, в том числе и 16 разрядных, если уж такая тяга к старому. Сделав это Вы будете знать, как и что происходит в виндовз. Занимать будет копейки.
2) Использовать одну из каркасных библиотек. Например, непопулярный среди так называемых "профи" МФЦ - претендент номер один. Здесь, чтобы развеять Ваши сомнения и популярную критику о непопулярности МФЦ скажу, что вам потребуются от МФЦ только хорошо вылезанные мелкософтом их обёртки ГДИ, а не их остальная какркасная хрень (там таки да, иногда плакать хочется).
К счастью эти обёртки ГДИ ни коем образом не встроены так же жётко в каркас МФЦ, как другие классы МФЦ. Это - просто классно сделанные обёртки ГДИ. Короче, хребет своей программы можете сделать на АПИ\МФЦ или только АПИ, а для ГДИ - использовать обёртки МФЦ. Будет практически также эффективно, как в п.1, но гораздо более надёжно, быстро, безопасно для Вас, т.к. мелкософт долго вылизывал графику - то, что ниже всего, т.е., что есть в их библиотеках в качестве графической подсистемы.
ПС. Если вам понятно, как работает код, что я пропостил Выше, то Вам будет понятно, как написать АПИ\МФЦ приложение. На всё_про_всё вам потребуется отсилы пару дней, что бы разобраться и уже что-то написать. Точно говорю.
Но вот всё ж по существу..... Был вопрос. Для меня он звучал так:
- а можно ли так извратиться, чтобы ничего лишнего, типа, майн + ГДИ.
Был ответ:
- если нельзя, но хочется, то можно.
Поэтому, совет. Если Вы делаете это для работы, то выбросьте это из головы. Честно говорю. Мало ли, как можно что-то сделать, как можно извратиться. То, что я пропостил таки-да, работает, но это тупик.
Что-бы я сделал, если есть прога, которую надо реанимировать для нормальной работы под виндами.... У вас повторяю есть уже очень много - С-код работающей программы, где ясно и понятно, что, где и как должно работать. Это самое важное. А не то, как в конце концов и при помощи каких библиотек будут отрисовываться примитивы в каких окнах и при помощи каких заумных функций.
Поэтому предлагаю два варианта:
1) Сделать нормальное приложение на ВинАПИ, где есть нормальный ВинМайн, обработка месаг виндовз и т.д. Плюсы такие - будет работать быстро, ровно так, как Вы хотите, а не как-нить захребетная библиотека обёрток ГДИ делает это за Вашей спиной. Будет компилироваться для всех платформ, в том числе и 16 разрядных, если уж такая тяга к старому. Сделав это Вы будете знать, как и что происходит в виндовз. Занимать будет копейки.
2) Использовать одну из каркасных библиотек. Например, непопулярный среди так называемых "профи" МФЦ - претендент номер один. Здесь, чтобы развеять Ваши сомнения и популярную критику о непопулярности МФЦ скажу, что вам потребуются от МФЦ только хорошо вылезанные мелкософтом их обёртки ГДИ, а не их остальная какркасная хрень (там таки да, иногда плакать хочется).
К счастью эти обёртки ГДИ ни коем образом не встроены так же жётко в каркас МФЦ, как другие классы МФЦ. Это - просто классно сделанные обёртки ГДИ. Короче, хребет своей программы можете сделать на АПИ\МФЦ или только АПИ, а для ГДИ - использовать обёртки МФЦ. Будет практически также эффективно, как в п.1, но гораздо более надёжно, быстро, безопасно для Вас, т.к. мелкософт долго вылизывал графику - то, что ниже всего, т.е., что есть в их библиотеках в качестве графической подсистемы.
ПС. Если вам понятно, как работает код, что я пропостил Выше, то Вам будет понятно, как написать АПИ\МФЦ приложение. На всё_про_всё вам потребуется отсилы пару дней, что бы разобраться и уже что-то написать. Точно говорю.
-
- Завсегдатай
- Сообщения: 251
- Зарегистрирован: 09 сен 2004, 23:58