С Новым годом! Форум программистов, компьютерный форум, киберфорум
DirectX
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/309: Рейтинг темы: голосов - 309, средняя оценка - 4.80
 Аватар для The_Darkness
3 / 3 / 0
Регистрация: 15.07.2012
Сообщений: 26

Error LNK2019: ссылка на неразрешенный внешний символ

15.07.2012, 16:53. Показов 63313. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Попытался скомпилировать программу из книги (DerectX - это просто. Программируем графику на С++) в Visual C++ 2010 Express, получил ошибки компиляции.

Вот вывод

1>------ Построение начато: проект: DX10Text, Конфигурация: Debug Win32 ------
1> main.cpp
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ _D3DX10CreateFontW@48 в функции "long __cdecl InitDirect3D10(void)" (?InitDirect3D10@@YAJXZ)
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ _D3D10CreateDeviceAndSwapChain@32 в функции "long __cdecl InitDirect3D10(void)" (?InitDirect3D10@@YAJXZ)
1>C:\Проги\Проги на C++\DrectX 10\Glava4\Text\Debug\DX10Text.exe : fatal error LNK1120: 2 неразрешенных внешних элементов
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========


Если понадобится, тогда вот код

Code
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
[CPP]//--------------------------------------------------------------------------------------
//  Вывод текста на экран
//--------------------------------------------------------------------------------------
 
#include <windows.h>
#include <d3d10.h>
#include <d3dx10.h>
 
// Ширина и высота окна
#define WINDOW_WIDTH  640
#define WINDOW_HEIGHT 480
 
//--------------------------------------------------------------------------------------
// Глобальные переменные
//--------------------------------------------------------------------------------------
HWND        g_hWnd = NULL;
D3D10_DRIVER_TYPE       g_driverType = D3D10_DRIVER_TYPE_NULL;
ID3D10Device*           g_pd3dDevice = NULL;
IDXGISwapChain*         g_pSwapChain = NULL;
ID3D10RenderTargetView* g_pRenderTargetView = NULL;
 
LPD3DX10FONT            g_pFont = NULL;
 
//--------------------------------------------------------------------------------------
// Прототипы функций
//--------------------------------------------------------------------------------------
HRESULT             InitWindow( HINSTANCE hInstance, int nCmdShow );
HRESULT             InitDirect3D10();
LRESULT CALLBACK    WndProc(HWND, UINT, WPARAM, LPARAM);
void                Cleanup();
void                RenderScene();
 
//--------------------------------------------------------------------------------------
// С этой функции начинается выполнение программы
//--------------------------------------------------------------------------------------
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
    // Создаем окно приложения
    if( FAILED( InitWindow( hInstance, nCmdShow ) ) )
        return 0;
    // Инициализируем Direct3D
    if( FAILED( InitDirect3D10() ) )
    {
        Cleanup();
        return 0;
    }
 
    // Цикл обработки сообщений
    MSG msg = {0};
    while( WM_QUIT != msg.message  )
    {
        if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) )
        {
        TranslateMessage( &msg );
        DispatchMessage( &msg );
        }
        else
        {
            RenderScene();
        }
 
    }
 
    return (int) msg.wParam;
}
 
//--------------------------------------------------------------------------------------
// Регистрация класса и создание окна
//--------------------------------------------------------------------------------------
HRESULT InitWindow( HINSTANCE hInstance, int nCmdShow )
{
    // Регистрируем класс окна
    WNDCLASSEX wc;
    wc.cbSize = sizeof(WNDCLASSEX); 
    wc.style          = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc    = WndProc;
    wc.cbClsExtra     = 0;
    wc.cbWndExtra     = 0;
    wc.hInstance      = hInstance;
    wc.hIcon          = NULL;
    wc.hCursor        = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground  = (HBRUSH)(COLOR_WINDOW+1);
    wc.lpszMenuName   = NULL;
    wc.lpszClassName  = L"SimpleWindowClass";
    wc.hIconSm        = LoadIcon(NULL, IDI_APPLICATION);
    if( !RegisterClassEx(&wc) )
        return E_FAIL;
 
    // Создаем окно
    g_hWnd = CreateWindow(
        L"SimpleWindowClass", 
        L"DirectX 10: Вывод текста", 
        WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, 
        CW_USEDEFAULT, 
        WINDOW_WIDTH,
        WINDOW_HEIGHT,
        NULL,
        NULL,
        hInstance,
        NULL);
 
    // Если не удалось создать окно - выходим из функции
    if( !g_hWnd )
        return E_FAIL;
    // Отображаем окно на экране
    ShowWindow( g_hWnd, nCmdShow );
    UpdateWindow(g_hWnd);
   
    return S_OK;
}
 
//--------------------------------------------------------------------------------------
// Инициализация Direct3D
//--------------------------------------------------------------------------------------
HRESULT InitDirect3D10()
{
    HRESULT hr = S_OK;
 
    // Узнаем размеры клиентской области окна
    RECT rc;
    GetClientRect( g_hWnd, &rc );
    UINT width = rc.right - rc.left;
    UINT height = rc.bottom - rc.top;
 
    // Список возможных типов устройства
    D3D10_DRIVER_TYPE driverTypes[] = 
    {
        D3D10_DRIVER_TYPE_HARDWARE,
        D3D10_DRIVER_TYPE_REFERENCE,
    };
    UINT numDriverTypes = sizeof(driverTypes) / sizeof(driverTypes[0]);
 
    // Заполняем структуру 
    DXGI_SWAP_CHAIN_DESC sd;
    ZeroMemory( &sd, sizeof(sd) );
    sd.BufferCount = 1;
    sd.BufferDesc.Width = width;
    sd.BufferDesc.Height = height;
    sd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
    sd.BufferDesc.RefreshRate.Numerator = 60;
    sd.BufferDesc.RefreshRate.Denominator = 1;
    sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
    sd.OutputWindow = g_hWnd;
    sd.SampleDesc.Count = 1;
    sd.SampleDesc.Quality = 0;
    sd.Windowed = TRUE;
 
    // Пытаемся создать устройство, проходя по списку
    // как только получилось - выходим из цикла
    for( UINT driverTypeIndex = 0; driverTypeIndex < numDriverTypes; driverTypeIndex++ )
    {
        g_driverType = driverTypes[driverTypeIndex];
        hr = D3D10CreateDeviceAndSwapChain( NULL, g_driverType, NULL, 0, 
            D3D10_SDK_VERSION, &sd, &g_pSwapChain, &g_pd3dDevice );
        if( SUCCEEDED( hr ) )
            break;
    }
    if( FAILED(hr) )
        return hr;
 
    // Представление данных для
    // буфера визуализации
    ID3D10Texture2D *pBackBuffer;
    hr = g_pSwapChain->GetBuffer( 0, __uuidof( ID3D10Texture2D ), (LPVOID*)&pBackBuffer );
    if( FAILED(hr) )
        return hr;
   // Создадим представление данных
    hr = g_pd3dDevice->CreateRenderTargetView( pBackBuffer, NULL, &g_pRenderTargetView );
    pBackBuffer->Release();
    if( FAILED(hr) )
        return hr;
   // Свяжем буфер визуализации с графическим конвейером
    g_pd3dDevice->OMSetRenderTargets( 1, &g_pRenderTargetView, NULL );
 
    // Настроим область отображения
    D3D10_VIEWPORT vp;
    vp.Width = width;
    vp.Height = height;
    vp.MinDepth = 0.0f;
    vp.MaxDepth = 1.0f;
    vp.TopLeftX = 0;
    vp.TopLeftY = 0;
    g_pd3dDevice->RSSetViewports( 1, &vp );
 
    // Создаем шрифтовой объект
    D3DX10CreateFont( g_pd3dDevice, 14, 8, 1, 1, FALSE, 0, 0, 0, DEFAULT_PITCH|FF_MODERN, L"Verdana", &g_pFont);
 
    return S_OK;
}
 
//--------------------------------------------------------------------------------------
// Прорисовка трехмерной сцены
//--------------------------------------------------------------------------------------
void RenderScene()
{
    // Очищаем вторичный буфер
    float ClearColor[4] = { 0.1f, 0.5f, 0.1f, 1.0f }; //компоненты красного, зеленого, синего, прозрачность
    g_pd3dDevice->ClearRenderTargetView( g_pRenderTargetView, ClearColor );
 
    //Размеры прямоугольника для форматирования текста
    RECT Rect;
    Rect.left=10;
    Rect.top=10;
    Rect.right=600;
    Rect.bottom=380;
 
    g_pFont->DrawText(NULL, L"Этот текст мы вывели на экран", -1, &Rect, DT_CENTER | DT_VCENTER , D3DXCOLOR(1.0,1.0,1.0,1.0));
 
    g_pSwapChain->Present( 0, 0 );
}
//--------------------------------------------------------------------------------------
// Обработка сообщений
//--------------------------------------------------------------------------------------
LRESULT CALLBACK WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
{    
    switch (message) 
    {
        
        case WM_DESTROY:
            PostQuitMessage(0);
            break;
 
        default:
            return DefWindowProc(hWnd, message, wParam, lParam);
    }
 
    return 0;
}
 
//--------------------------------------------------------------------------------------
// Очищаем память 
//--------------------------------------------------------------------------------------
void Cleanup()
{
    if( g_pd3dDevice ) g_pd3dDevice->ClearState();
 
    if( g_pRenderTargetView ) g_pRenderTargetView->Release();
    if( g_pSwapChain ) g_pSwapChain->Release();
    if( g_pd3dDevice ) g_pd3dDevice->Release();
 
    if( g_pFont ) g_pFont->Release();
}
[/CPP]

Подскажите, что сделать, чтобы убрать эти ошибки.
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.07.2012, 16:53
Ответы с готовыми решениями:

Error LNK2019: ссылка на неразрешенный внешний символ
Сразу скажу, что гуглил проблему. Но все решения то не подходили, то не работали. Поэтому и создал тему. Впервые столкнулся, когда...

LNK2019 ссылка на неразрешенный внешний символ main
Попытался скомпилировать программу в Visual Studio 2015 , получил ошибки компиляции. Вот вывод: Ошибка LNK2019 ссылка на...

error LNK2019: ссылка на неразрешенный внешний символ...
Подскажите что я не правельно сделал? #include&lt;iostream&gt; using namespace std; #include&lt;iomanip&gt; int f_fact(int); int...

13
117 / 75 / 5
Регистрация: 15.03.2012
Сообщений: 259
15.07.2012, 21:27
Лучший ответ Сообщение было отмечено как решение

Решение

В визуал студии в левом окошке правой кнопкой мышки по проекту - Add New Item (добавить) - > существующий элемент (existens item) и ищи папку с установленным DirectX SDK и в ней находишь папку Libs (библиотеки) (обычно C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x64 и выбираешь d3d11.lib Но собственно тут завист всё от того, под какую версию директы ты программу пишешь. Короче говоря, ошибки линковщика (сборщика, он же Linker - тоесть та штука, которая идёт в окне вывода после компиляции при нажатии кнопки F7) - это в основном поиск не известных внешних исмволов, в твоём случае по крайней мере, и для решения проблемы, тебе следует в проект подключать те или иные библиотеки - тоесть lib файлы. Надеюсь я понятно объяснил

Добавлено через 7 минут
Для общего развития напишу: когда ты подключаешь H файлы директ икса, ну например d3d11.h и тд - в них идут только заголовки функций, тоесть название функции, тип вызова параметров (stdcall к примеру), класс памяти и тд, но самого кода (тоесть тела) функции там нет и чтоб линковщик мог в код твоей прграммы подставить текст самой функции - ему собственно и надо знать, как она выглядит. Тоесть тут есть варианты, либо ты подключаешь статическую библиотеку типа LIB, либо динамическую типа DLL либо пишешь сам классы собственного директ икса и подклюбсаешь файлы типа moydirectx.h и соответствующий cpp файл в свой прект :-)))
10
 Аватар для The_Darkness
3 / 3 / 0
Регистрация: 15.07.2012
Сообщений: 26
15.07.2012, 21:31  [ТС]
А разве не достаточно, того что я в Проект -> Свойства -> Каталоги VC++ добавил все *.h и *.lib файлы DirectX SDK ?
0
117 / 75 / 5
Регистрация: 15.03.2012
Сообщений: 259
15.07.2012, 23:30
Лучший ответ Сообщение было отмечено как решение

Решение

Нет недостаточно. Как протрезвею - напигшу
5
117 / 75 / 5
Регистрация: 15.03.2012
Сообщений: 259
17.07.2012, 22:44
Лучший ответ Сообщение было отмечено как решение

Решение

Помощь уже здесь
В твоём случае надо добавить в проект две библиотеки D3D10.LIB и D3D10X.LIB

Подключать к проекту в твоей русской студии надо так: правой кнопкой по проекту->Добавить->Существующий элемент-> ... и ищешь свои библиотеки по пути C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86 ....
Либо другой способ подключения статических библиотек: в самом начале файла с программой пишешь строчки:
C++
1
2
#pragma comment(lib, "d3d10.lib") 
#pragma comment(lib, "d3dx10.lib")
И радуешься крутой надписи на зелёном фоне (результат работы твоей программы)

Цитата Сообщение от The_Darkness Посмотреть сообщение
А разве не достаточно, того что я в Проект -> Свойства -> Каталоги VC++ добавил все *.h и *.lib файлы DirectX SDK ?
Этой манипуляцией ты не добавляешь в проект никакие файлы, ты просто указываешь компилятору пути поиска включаемых файлов. К примеру, еслиб ты не указывал путь поиска библиотек, то тогда бы тебе пришлось подключать вторым способом эти библиотеки так:
C++
1
2
#pragma comment(lib, "C:\\Program Files (x86)\\Microsoft DirectX SDK (June 2010)\\Lib\\x86\\d3d10.lib") 
#pragma comment(lib, "C:\\Program Files (x86)\\Microsoft DirectX SDK (June 2010)\\Lib\\x86\\d3dx10.lib")
Аналогично и с файлами заголовков (включаемыми файлами типа *.h).
Вот когда ты в своей программе написал строчки:
C++
1
2
3
#include <windows.h>
#include <d3d10.h>
#include <d3dx10.h>
Это значит, что ты говоришь компилятору, подключи мне эти файлы и ты сам знаешь где их искать, причём эта фраза подходит для включения типа #include <...>, если ты бы имена файлов писал в кавычках типа #include "..." - компилятор бы проверил наличие файлов в папке с исполняемым файлом твоей программы, их бы там не нашёл (ну если ты бы их сам туда не запихнул) и была бы ошибка. Запомни, включаемые файлы в угловых скобках компилятор ищет по путям поиска, а в кавычках - только в папке с программой. Пути поиска нужно прописывать для каждого проекта заново. В старых версиях студии можно было установить глобальные параметры поиска, сейчас такого уже нет.

P.S.: Я удивляюсь компетенции некоторых ищущих здесь на форуме
7
 Аватар для The_Darkness
3 / 3 / 0
Регистрация: 15.07.2012
Сообщений: 26
17.07.2012, 23:12  [ТС]
Цитата Сообщение от -=MASTER=- Посмотреть сообщение
Это значит, что ты говоришь компилятору, подключи мне эти файлы и ты сам знаешь где их искать, причём эта фраза подходит для включения типа #include <...>, если ты бы имена файлов писал в кавычках типа #include "..." - компилятор бы проверил наличие файлов в папке с исполняемым файлом твоей программы, их бы там не нашёл (ну если ты бы их сам туда не запихнул) и была бы ошибка. Запомни, включаемые файлы в угловых скобках компилятор ищет по путям поиска, а в кавычках - только в папке с программой. Пути поиска нужно прописывать для каждого проекта заново. В старых версиях студии можно было установить глобальные параметры поиска, сейчас такого уже нет.
Это я знал.

Но почему то всё равно пришлось писать полный путь до файлов.
Цитата Сообщение от -=MASTER=- Посмотреть сообщение
C++
1
2
#pragma comment(lib, "d3d10.lib") 
#pragma comment(lib, "d3dx10.lib")
Так всё ровно выдавало ошибку.
0
117 / 75 / 5
Регистрация: 15.03.2012
Сообщений: 259
18.07.2012, 00:08
А ты выложи скриншоты со включениями путей поиска библиотек и хедеров и я тебе скажу, почему надо учится на английской студии
1
 Аватар для The_Darkness
3 / 3 / 0
Регистрация: 15.07.2012
Сообщений: 26
18.07.2012, 07:44  [ТС]
Цитата Сообщение от -=MASTER=- Посмотреть сообщение
Подключать к проекту в твоей русской студии надо так: правой кнопкой по проекту->Добавить->Существующий элемент-> ... и ищешь свои библиотеки по пути C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86 ....
А у меня x64. И получается(проверил), что у меня не работает с x64, а с x86 все работает нормально, хотя у меня 64-разрядная ОП.
Миниатюры
Error LNK2019: ссылка на неразрешенный внешний символ   Error LNK2019: ссылка на неразрешенный внешний символ  
0
117 / 75 / 5
Регистрация: 15.03.2012
Сообщений: 259
18.07.2012, 10:23
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от The_Darkness Посмотреть сообщение
меня 64-разрядная ОП
ОП, это ОПерационная система ?

Цитата Сообщение от The_Darkness Посмотреть сообщение
А у меня x64. И получается(проверил), что у меня не работает с x64, а с x86 все работает нормально
Ну а что же ты хотел компилируя 32-х разрядным компилятором 64-х разрядные библиотеки?

В общем так, если ты хочешь использовать 64-х битные библиотеки - тебе надо создать 64-х битную платформу. Порядок действий:

1. Платформы и решения -> Диспетчер конфигураций
2. Активная платформа решения -> Создать
3. "Введите или выберите новую платформу" -> x64 (остальное не меняй, чтоб всякие пути и прочее скопировалось с Win32, так же может выбрать для какой конфигурации ты создаёшь платформу, для Debug или Release -> в общем в этом диспетчере ты работаешь со всеми своими конфигурациями)
4. Всё, теперь в "Платформы и решения" у тебя горит x64 -> Компилируешь и радуешься жизни с 64-х битными библиотеками.

5. С своём проекте ты используешь юникод и, по этому для новой платформы x64 в зависимости от студии возможно придётся включить поддержку юникода с свойствах проекта вручную, иначе будут ошибки конвертации текстовых полей типа "DrawTextA: невозможно преобразовать параметр 2 из "const wchar_t [30]" в "LPCSTR"", но опять же в зависимости от студии этого может и не быть.

Знаю, что ты ни чего не понял и по этому все детали прилагаю на скринах!
Миниатюры
Error LNK2019: ссылка на неразрешенный внешний символ   Error LNK2019: ссылка на неразрешенный внешний символ   Error LNK2019: ссылка на неразрешенный внешний символ  

Error LNK2019: ссылка на неразрешенный внешний символ  
6
 Аватар для The_Darkness
3 / 3 / 0
Регистрация: 15.07.2012
Сообщений: 26
18.07.2012, 10:33  [ТС]
Цитата Сообщение от -=MASTER=- Посмотреть сообщение
ОП, это ОПерационная система ?
Опечатался.

Цитата Сообщение от -=MASTER=- Посмотреть сообщение
Знаю, что ты ни чего не понял и по этому все детали прилагаю на скринах!
Нет, все я понял. Спасибо.
0
 Аватар для The_Darkness
3 / 3 / 0
Регистрация: 15.07.2012
Сообщений: 26
18.07.2012, 10:44  [ТС]
Миниатюры
Error LNK2019: ссылка на неразрешенный внешний символ   Error LNK2019: ссылка на неразрешенный внешний символ  
0
117 / 75 / 5
Регистрация: 15.03.2012
Сообщений: 259
18.07.2012, 11:05
Миниатюры
Error LNK2019: ссылка на неразрешенный внешний символ  
0
117 / 75 / 5
Регистрация: 15.03.2012
Сообщений: 259
18.07.2012, 11:13
А если серьёзно, то посмотри в окошко вывода компилятора, где у тебя написанно

------ Построение начато: проект: ТРУЛАЛА, Конфигурация: Debug Win32 ------
А у меня x64 Сечёшь разницу? Не знаю, почему у тебя студия при выбранной сверху конфигурации x64 компилит 32-х разрядной....давно не сидел за VS2010. Скорее всего в диспетчере конфигураций тебе надо поставить галочки и выбрать текущую активную конфигурацию.
1
0 / 0 / 0
Регистрация: 12.05.2015
Сообщений: 2
12.05.2015, 16:48
В версии VС ++ 2008 помогло(d3d10), а в 2013 я работаю с d3d11.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.05.2015, 16:48
Помогаю со студенческими работами здесь

Error LNK2019: ссылка на неразрешенный внешний символ
Всем доброго времени суток. Помогите пожалуйста разобраться с проблемой. Честно просматривал форму, похожих ошибок много, но решение в...

error LNK2019: ссылка на неразрешенный внешний символ
Пытался запустить google test, пишет, ссылка на неразрешенный внешний символ, хотя все внешние библиотеки подключены. Я думаю их еще надо...

Error LNK2019: ссылка на неразрешенный внешний символ
Короче перешел я с XP на семерку и тут появилась такая фигня. Те проекты которые нормально работали в XP не хотят компилироваться в...

Error LNK2019: ссылка на неразрешенный внешний символ
GLvoid LoadGLTextures() { // Загрузка картинки AUX_RGBImageRec *texture1; texture1 = auxDIBImageLoadW(L&quot;texture256.bmp&quot;); ...

Error LNK2019: ссылка на неразрешенный внешний символ
Как исправить ошибку? StrCpy(szBuffer, _TEXT(&quot;String&quot;)); Ошибка 3 error LNK2019: ссылка на неразрешенный внешний символ...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru