Форум программистов, компьютерный форум CyberForum.ru

В чём разница между динамической и статической линковкой библиотеки? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ неизвестная ошибка http://www.cyberforum.ru/cpp-beginners/thread855556.html
Помогите с кодом который из книги по изучению С++: Вот неработающий код: #include <iostream> using namespace std; #include <conio.h> enum itsaWord { NO, YES };
C++ Что такое орган управления ? Подскажите пожалуйста не могу понять орган управления и дочерние окно - это одно и то же или нет ? http://www.cyberforum.ru/cpp-beginners/thread855554.html
Из двух стеков с упорядоченными по возрастанию элементами создать новый стек с упорядоченными элементами, не удаляя исходные стеки C++
Из двух стеков равной длины с вещественными числами создать 1 стек с квадратами значений элементов исходных стеков, не удаляя исходные стеки. При создании нового стека элемент выбирается по очереди по одному элементу из каждого стека.
C++ Сортировка методом отбора
Помогите реализовать сортировку отбора отрицательных элементов в столбцах двумерного массива. На примере: Столбец 3 -1 2 -4 -3 После 3
C++ Подробнее о классах http://www.cyberforum.ru/cpp-beginners/thread855541.html
Извините если я не туда зашел. Я например хочу освоить на хорошем уровне классы. Ну в дальнейшем для написания начальных уровней игр, ну то есть(змейка. бильярд с примитивной физикой...). Подскажите где об этом можно подробней узнать. Желательно уроки чтоб так сказать схватить азы. На ютубе искал но там просто хлам. Да и я в общем то и сам знаю :) За ранее спасибо :)
C++ Определить самое короткое слово и первые вхождения слов Вообщем задание такое: Дана строка слов, разделенных пробелами. Определите самое короткое слово. Оставьте в строке только первые вхождения слов. Собственно первую часть программы сделал, все работает, а вот со второй ступор, пытался просто в новый массив записывать первую букву каждого слова но что то не получилось, компиляция прошла а после ввода строки выдает ошибку. #include <iostream>... подробнее

Показать сообщение отдельно
Убежденный
Системный программист
 Аватар для Убежденный
14435 / 6419 / 1015
Регистрация: 02.05.2013
Сообщений: 10,662
Завершенные тесты: 1
04.05.2013, 18:35     В чём разница между динамической и статической линковкой библиотеки?
Что значит "неявно" ? dll - это всегда динамическая компоновка.
Но здесь есть еще один термин - связывание, оно может быть ранним или поздним.
При раннем связывании вы создаете жесткую ссылку на dll на этапе компоновки, и
эта dll загружается в адресное пространство процесса во время его запуска.
А при позднем связывании программа вызывает LoadLibrary(Ex)/GetProcAddress,
загружая dll уже в процессе выполнения.

Например, я могу написать так:
C++
1
2
3
4
5
6
7
#include <Windows.h>
 
int main()
{
    MessageBoxW(NULL, L"Hello, World !", L"Message", MB_OK);
    return 0;
}
Это будет раннее связывание, так как ссылка на MessageBox разрешается
компоновщиком на этапе сборки программы.
А вот пример позднего связывания:
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
#include <Windows.h>
 
int main()
{
    typedef int (_stdcall *PFN_MSGBOX)(HWND, wchar_t const *, wchar_t const *, UINT);
 
    HANDLE const hUser32Dll = LoadLibraryW(L"user32.dll");
 
    if (NULL == hUser32Dll)
    {
        return EXIT_FAILURE;
    }
 
    PFN_MSGBOX pfnMsgBox = (PFN_MSGBOX)GetProcAddress(hUser32Dll, "MessageBoxW");
 
    if (NULL == pfnMsgBox)
    {
        FreeLibrary(hUser32Dll);
        return EXIT_FAILURE;
    }
 
    pfnMsgBox(NULL, L"Hello, World !", L"Message", MB_OK);
 
    FreeLibrary(hUser32Dll);
    return EXIT_SUCCESS;
}
 
Текущее время: 13:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru