Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
 Аватар для florgas
6 / 5 / 0
Регистрация: 28.09.2010
Сообщений: 366

Не компилируется Gdiplus

02.07.2013, 19:46. Показов 4180. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не компилируется. В чем проблема?
Проблема не в коде, а самой библиотеке и заголовке. Не знаю что с ними сделать.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <Windows.h>
#include <gdiplus.h>
#pragma comment(lib,"gdiplus.lib");
 
using namespace GdiPlus;
 
#define width 640
#define height 480
 
VOID OnPaint(HDC hdc)
{
    Graphics graphics(hdc);
    SolidBrush brush(Color(255, 0, 0, 255));
    FontFamily fontFamily(L"Times New Roman");
    Font font(&fontFamily, 24, FontStyleRegular, UnitPixel);
    PointF pointF(10.0f, 20.0f);
 
    graphics.DrawString(L"Hello World!", -1, &font, pointF, &brush);
}
 
LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    WNDCLASSEX windowClass;
    HWND hWnd;
    MSG uMsg;
    GdiplusStartupInput gdiplusStartupInput;
    UNLONG_PTR gdiplusToken;
 
    memset(&windowClass, 0, sizeof(WNDCLASSEXW));
    windowClass.cbSize = sizeof(WNDCLASSEX);
    windowClass.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
    windowClass.hCursor = LoadCursor(NULL, IDC_ARROW);
    windowClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    windowClass.hInstance = hInstance;
    windowClass.lpfnWndProc = WindowProc;
    windowClass.lpszClassName = "Simple Window";
 
    RegisterClassEx(&windowClass);
 
    hWnd = CreateWindow(windowClass.lpszClassName, "My CPP", WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX,
        (GetSystemMetrics(SM_CXSCREEN) - width) / 2, (GetSystemMetrics(SM_CYSCREEN) - height) / 2, width, height, NULL, NULL, NULL, NULL);
 
    ShowWindow(hWnd, nCmdShow);
 
    while(GetMessage(&uMsg, hWnd, NULL, NULL))
    {
        TranslateMessage(&uMsg);
        DispatchMessage(&uMsg);
    }
 
    GdiplusShutdown(gdiplusToken);
 
    return uMsg.wParam;
}
 
LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    HDC hDC;
    PAINTSTRUCT ps;
 
    switch (uMsg)
    {
    case WM_CLOSE:
        ExitProcess(0);
        break;
    case WM_PAINT:
        hDC = BeginPaint(hWnd, &ps);
        OnPaint(hDC);
        EndPaint(hWnd, &ps);
        break;
    default:    
        return DefWindowProc(hWnd, uMsg, wParam, lParam);
    }
}
1>------ Build started: Project: SA, Configuration: Debug Win32 ------
1>Build started 02.07.2013 19:42:06.
1>InitializeBuildStatus:
1> Touching "Debug\SA.unsuccessfulbuild".
1>ClCompile:
1> Main.cpp
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(3): warning C4081: expected 'newline'; found ';'
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(5): error C2871: 'GdiPlus' : a namespace with this name does not exist
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(12): error C2065: 'Graphics' : undeclared identifier
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(12): error C2146: syntax error : missing ';' before identifier 'graphics'
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(12): error C3861: 'graphics': identifier not found
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(13): error C2065: 'SolidBrush' : undeclared identifier
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(13): error C2146: syntax error : missing ';' before identifier 'brush'
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(13): error C3861: 'brush': identifier not found
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(13): error C3861: 'Color': identifier not found
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(14): error C2065: 'FontFamily' : undeclared identifier
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(14): error C2146: syntax error : missing ';' before identifier 'fontFamily'
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(14): error C3861: 'fontFamily': identifier not found
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(15): error C2065: 'Font' : undeclared identifier
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(15): error C2146: syntax error : missing ';' before identifier 'font'
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(15): error C2065: 'fontFamily' : undeclared identifier
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(15): error C2065: 'FontStyleRegular' : undeclared identifier
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(15): error C2065: 'UnitPixel' : undeclared identifier
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(15): error C3861: 'font': identifier not found
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(16): error C2065: 'PointF' : undeclared identifier
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(16): error C2146: syntax error : missing ';' before identifier 'pointF'
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(16): error C3861: 'pointF': identifier not found
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(18): error C2065: 'graphics' : undeclared identifier
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(18): error C2228: left of '.DrawString' must have class/struct/union
1> type is ''unknown-type''
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(18): error C2065: 'font' : undeclared identifier
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(18): error C2065: 'pointF' : undeclared identifier
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(18): error C2065: 'brush' : undeclared identifier
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(27): error C2065: 'GdiplusStartupInput' : undeclared identifier
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(27): error C2146: syntax error : missing ';' before identifier 'gdiplusStartupInput'
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(27): error C2065: 'gdiplusStartupInput' : undeclared identifier
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(28): error C2065: 'UNLONG_PTR' : undeclared identifier
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(28): error C2146: syntax error : missing ';' before identifier 'gdiplusToken'
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(28): error C2065: 'gdiplusToken' : undeclared identifier
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(52): error C2065: 'gdiplusToken' : undeclared identifier
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(52): error C3861: 'GdiplusShutdown': identifier not found
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:01.70
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.07.2013, 19:46
Ответы с готовыми решениями:

GdiPlus
Господа!!! Что я не так делаю??? #include&quot;windows.h&quot; #include&quot;gdiplus.h&quot; using namespace Gdiplus; int __stdcall WinMain(HINSTANCE...

Программа компилируется в Borland 6.0 но не компилируется в Visual Studio 2008
Ета програма компилируетса в борланде 6.0 но не компилируетса в Visualstudio 2008 и в борланде 10-м почему? #include&lt;iostream&gt; ...

С++ WinAPI GDIPLUS
Всем доброго времени суток. Друзья возможно то, что я ищу уже было на этом форуме, но если честно я не нашел! Поэтому прошу простить и...

19
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
02.07.2013, 20:06
#pragma comment(lib,"gdiplus.lib");
Здесь не нужна точка с запятой.

using namespace GdiPlus;
Не GdiPlus, а Gdiplus (регистр символов важен).

UNLONG_PTR gdiplusToken;
Нет такого типа - UNLONG_PTR, есть ULONG_PTR.

Цитата Сообщение от florgas Посмотреть сообщение
windowClass.lpszClassName = "Simple Window";
Если проект настроен на Unicode, должно быть так: L"Simple Window";
И не только в это строке.
1
 Аватар для florgas
6 / 5 / 0
Регистрация: 28.09.2010
Сообщений: 366
02.07.2013, 20:14  [ТС]
Все ошибки исчезли, но из-за
Если проект настроен на Unicode, должно быть так: L"Simple Window";
теперь вот такая ошибка с типами. Как исправить, подскажите пожалуйста.
1>------ Build started: Project: SA, Configuration: Debug Win32 ------
1>Build started 02.07.2013 20:13:02.
1>InitializeBuildStatus:
1> Touching "Debug\SA.unsuccessfulbuild".
1>ClCompile:
1> Main.cpp
1>c:\users\dmitriy\documents\visual studio 2010\projects\sa\sa\main.cpp(37): error C2440: '=' : cannot convert from 'const wchar_t [14]' to 'LPCSTR'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:01.18
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
0
9 / 9 / 0
Регистрация: 14.01.2013
Сообщений: 102
02.07.2013, 21:13
В этой строке у тебя использована ф-ция или что-то что принимает анси.
А ты даёшь ей юникод.
Поправь чтобы принимала юникод.
0
 Аватар для florgas
6 / 5 / 0
Регистрация: 28.09.2010
Сообщений: 366
02.07.2013, 21:17  [ТС]
А как это поправить?
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
02.07.2013, 21:21
Уберите L из строковых литералов. Это только для Unicode-проектов.
Т.е. не L"Hello", а просто "Hello". Так должно работать.
0
9 / 9 / 0
Регистрация: 14.01.2013
Сообщений: 102
02.07.2013, 21:26
Цитата Сообщение от florgas Посмотреть сообщение
А как это поправить?
Строку отдельно в студию.
Как сейчас она у тебя в исходники.
По коду выше вроде правильно...
Так что строку из исходника давай.

Добавлено через 3 минуты
Цитата Сообщение от Убежденный Посмотреть сообщение
Уберите L из строковых литералов. Это только для Unicode-проектов.
Т.е. не L"Hello", а просто "Hello". Так должно работать.
А чуть выше обратное советовал...
А вобще ты прав...
Сложно говорить чего-то когда не знаешь что и как настроено у человека...
0
 Аватар для florgas
6 / 5 / 0
Регистрация: 28.09.2010
Сообщений: 366
02.07.2013, 21:30  [ТС]
windowClass.lpszClassName = "Simple Window";
Вот так только одна ошибка:
1>GdiPlus.lib : fatal error LNK1127: library is corrupt
Не нравится ему моя либа и все. Как исправить, ребят?
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
02.07.2013, 21:33
Сделайте пересборку проекта (Rebuild). Обычно помогает.
0
 Аватар для florgas
6 / 5 / 0
Регистрация: 28.09.2010
Сообщений: 366
02.07.2013, 21:39  [ТС]
Не помогло. Есть такая мысль, что я не указал путь к библиотеке, а вернее сделал это не правильно. Как это правильно сделать?
0
9 / 9 / 0
Регистрация: 14.01.2013
Сообщений: 102
02.07.2013, 21:52
#include <gdiplus.h>
using namespace Gdiplus;
#pragma comment (lib,"Gdiplus.lib")

в msdn так в примере...
http://msdn.microsoft.com/en-u... 85%29.aspx
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
02.07.2013, 21:54
Цитата Сообщение от florgas Посмотреть сообщение
Есть такая мысль, что я не указал путь к библиотеке, а вернее сделал это не правильно.
Не должно быть такого. GDI+ - это ведь стандартная библиотека, пути к ней уже должны
быть прописаны автоматически. Во всяком случае, если Вы ничего в настройках проекта
не меняли. Если создать пустое оконное приложение Win32, а затем добавить в него
данный код (со всеми исправлениями), он должен успешно компилироваться и запускаться.
0
 Аватар для florgas
6 / 5 / 0
Регистрация: 28.09.2010
Сообщений: 366
02.07.2013, 22:11  [ТС]
То есть у Вас вот этот код компилируется нормально?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <Windows.h>
#include <gdiplus.h>
#pragma comment(lib,"gdiplus.lib")
 
using namespace Gdiplus;
 
#define width 640
#define height 480
 
VOID OnPaint(HDC hdc)
{
    Graphics graphics(hdc);
    SolidBrush brush(Color(255, 0, 0, 255));
    FontFamily fontFamily(L"Times New Roman");
    Font font(&fontFamily, 24, FontStyleRegular, UnitPixel);
    PointF pointF(10.0f, 20.0f);
 
    graphics.DrawString(L"Hello World!", -1, &font, pointF, &brush);
}
 
LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    WNDCLASSEX windowClass;
    HWND hWnd;
    MSG uMsg;
    GdiplusStartupInput gdiplusStartupInput;
    ULONG_PTR gdiplusToken;
 
    memset(&windowClass, 0, sizeof(WNDCLASSEXW));
    windowClass.cbSize = sizeof(WNDCLASSEX);
    windowClass.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
    windowClass.hCursor = LoadCursor(NULL, IDC_ARROW);
    windowClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    windowClass.hInstance = hInstance;
    windowClass.lpfnWndProc = WindowProc;
    windowClass.lpszClassName = "Simple Window";
 
    RegisterClassEx(&windowClass);
 
    hWnd = CreateWindow(windowClass.lpszClassName, "My CPP", WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX,
        (GetSystemMetrics(SM_CXSCREEN) - width) / 2, (GetSystemMetrics(SM_CYSCREEN) - height) / 2, width, height, NULL, NULL, NULL, NULL);
 
    ShowWindow(hWnd, nCmdShow);
 
    while(GetMessage(&uMsg, hWnd, NULL, NULL))
    {
        TranslateMessage(&uMsg);
        DispatchMessage(&uMsg);
    }
 
    GdiplusShutdown(gdiplusToken);
 
    return uMsg.wParam;
}
 
LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    HDC hDC;
    PAINTSTRUCT ps;
 
    switch (uMsg)
    {
    case WM_CLOSE:
        ExitProcess(0);
        break;
    case WM_PAINT:
        hDC = BeginPaint(hWnd, &ps);
        OnPaint(hDC);
        EndPaint(hWnd, &ps);
        break;
    default:    
        return DefWindowProc(hWnd, uMsg, wParam, lParam);
    }
}
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
02.07.2013, 22:19
Создаю новый пустой проект Win32 (оконное приложение) в Visual Studio,
добавляю файл cpp, вставляю в него данный код, нажимаю Build.
Вылетают ошибки, что нельзя сконвертировать const char[] в LPCWSTR.
Добавляю префикс "L" к строкам "Simple Window" и "My CPP" - все компилируется и
запускается. Правда, есть некоторые предупреждения компилятора, на которые
Вам стоило бы обратить внимание, но они к делу не относятся.
0
9 / 9 / 0
Регистрация: 14.01.2013
Сообщений: 102
02.07.2013, 22:34
Убежденный, ага ты прав...
предупреждения вылазиют...
Не стал править...
А так компилица...

Добавлено через 6 секунд
Убежденный, ага ты прав...
предупреждения вылазиют...
Не стал править...
А так компилица...
1
 Аватар для florgas
6 / 5 / 0
Регистрация: 28.09.2010
Сообщений: 366
02.07.2013, 22:45  [ТС]
Все компилится, но текст Hello World не появляется... В чем проблема, ребят?
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
02.07.2013, 22:57
А GdiplusStartup где ?
1
 Аватар для florgas
6 / 5 / 0
Регистрация: 28.09.2010
Сообщений: 366
02.07.2013, 23:14  [ТС]
Вот же:
GdiplusStartupInput gdiplusStartupInput;
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
02.07.2013, 23:15
Я имел в виду это - GdiplusStartup function.
0
 Аватар для florgas
6 / 5 / 0
Регистрация: 28.09.2010
Сообщений: 366
02.07.2013, 23:20  [ТС]
Упс, забыл
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
Все, работает! Спасибо, друзья!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.07.2013, 23:20
Помогаю со студенческими работами здесь

Заголовочный файл, который компилируется в VS2017, не компилируется в Qt
В общем был класс &quot;Матрицы&quot;, который нормально работал в VS2017. Возникла необходимость использовать использовать его для создания...

Библиотека gdiplus.dll
Доброго времени суток! Нужна документация или хоть какое нибуть описание библиотеки gdiplus.dll. Очень желательно на русском. Может кто...

gdiplus считается родной?
не могу никак найти инфу про то, какая же сейчас библиотека с++ для работы с графикой актуальна, нужна именно родная библиотека с++,...

Библиотека gdiplus.lib
Здравствуйте. Есть вопрос по поводу библиотеки gdi+ и использования ее в Visual Studio 2017. После подключения всех хедеров (.h) связанных...

Ошибка gdiplus.dll
Столкнулся со следующими проблемами, не знаю связанны они между собой или нет: При запуске Windows Media Player и Classic появляется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru