Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.57/30: Рейтинг темы: голосов - 30, средняя оценка - 4.57
 Аватар для ZiGSuN
27 / 27 / 7
Регистрация: 02.12.2009
Сообщений: 66

Как подключить dll и lib SDL?

22.07.2012, 15:23. Показов 6008. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как подключить к проекту(в Visual Studio 2010) библиотеку SDL?// есть SDL.dll, SDL.lib и SDLmain.lib
и еще папка с include'ами
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.07.2012, 15:23
Ответы с готовыми решениями:

Как в VS 2015 устранить ошибку LNK 1104 cannot open file 'fltkd.lib wsock32.lib comct132.lib fltkjpegd.lib'?
как устранить ошибку LNK 1104 в visual studio community 2015? пункта C/C++ в properties нету Можете сказать куда его перенесли или...

Как подключить dll, lib к проекту?
Здравствуйте! Раньше никогда этим не занимался, и длл и либ файлы не мои. Надо подключить к проекту что бы пропали ошибки ...

Как подключить dll или lib в Android Studio?
Собственно, вопрос в теме.

22
 Аватар для OstapBender
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
22.07.2012, 16:04
#pragma comment(lib,"SDL.lib")
#pragma comment(lib,"SDLmain.lib")

инклуды в папку и подключай как обычные
0
143 / 27 / 4
Регистрация: 06.05.2019
Сообщений: 1,835
Записей в блоге: 4
13.07.2021, 23:57
Цитата Сообщение от OstapBender Посмотреть сообщение
инклуды в папку и подключай как обычные
Пишу так в lib библиотеке
C++
1
2
#include "stdafx.h"
char Pomidor(){return 120;}
Подключаю через #pragma comment(lib,"Nexi99_.lib") и не видит функцию Pomidor.
Библиотеку положил там где exe ый файл запускается и где файлы от проекта, там и хедэры программа берёт.
Пробовал через компоновщик подключать и тоже не работает.
Ещё есть способ где путь указать надо но я не знаю где это нажимать.
Миниатюры
Как подключить dll и lib SDL?  
Вложения
Тип файла: rar Nexi99_.rar (3.7 Кб, 10 просмотров)
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
14.07.2021, 06:42
Nexi99, покажите путь в файл lib. Например:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#pragma comment(lib,"C:\\Users\\DCUONG\\Desktop\\Test\\Test\\Nexi99_.lib") // Путь в файл lib !
 
#include <iostream>
using namespace std;
 
extern char Pomidor();  // Можно использовать "extern", или нет !
int main()
{
    cout << Pomidor() << endl;
    system("pause");
    return 0;
}
0
Just Do It!
 Аватар для XLAT
4203 / 2661 / 654
Регистрация: 23.09.2014
Сообщений: 9,027
Записей в блоге: 3
14.07.2021, 13:05
Цитата Сообщение от Nexi99 Посмотреть сообщение
Библиотеку положил там где exe ый файл запускается и где файлы от проекта, там и хедэры программа берёт.
не так:
компилируем статик либу:


кладём либу в папку с проектом(там где *.vcxproj) и компилим ексешник:


обратите внимание на то, чтобы совпадали в обоих версиях разрядность и режим билдинга(например, чтобы везде был релиз):

никакие записи ни в каких настройках я НЕ ДЕЛАЛ!
0
143 / 27 / 4
Регистрация: 06.05.2019
Сообщений: 1,835
Записей в блоге: 4
14.07.2021, 15:44
Цитата Сообщение от Volga_ Посмотреть сообщение
Можно использовать "extern", или нет
нет я же выше написал так
char Pomidor(){return 120;}
Значит нужно функцию объявить да после прагмы?

Добавлено через 5 минут
Цитата Сообщение от Volga_ Посмотреть сообщение
Nexi99, покажите путь в файл lib. Например:
Благодарю моя ошибка была в том что я не объявил функцию в проекте основного кода (с dll я то разобрался а со статическими ещё не работал), когда объявил соединились и работает нормально.

Добавлено через 1 минуту
А зачем
Цитата Сообщение от Volga_ Посмотреть сообщение
extern
?

Добавлено через 5 минут
Цитата Сообщение от XLAT Посмотреть сообщение
не так:
компилируем статик либу:
Я собираю на дебагере как 32битные потому что часто работаю со стеком памятью и указателями. 64 битные ложат переменные в регистры.
Но писали что мои dll привязаны к VC, было бы не плохо её(эту связь/привязку) убрать может нужно собирать не в режиме Дебага а как что-то другое но по 32 битным правилам.
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
14.07.2021, 15:46
Цитата Сообщение от Nexi99 Посмотреть сообщение
нет я же выше написал так
Я думал, что вы хотите вызвать функцию Pomidor(), которая была объявлена из файла lib. А не так, да ?

Цитата Сообщение от Nexi99 Посмотреть сообщение
А зачем
Цитата Сообщение от Volga_ Посмотреть сообщение
// Можно использовать "extern", или нет !
0
143 / 27 / 4
Регистрация: 06.05.2019
Сообщений: 1,835
Записей в блоге: 4
14.07.2021, 15:54
Надо наверное выбрать Release да чтобы не были связаны.
Миниатюры
Как подключить dll и lib SDL?  
0
143 / 27 / 4
Регистрация: 06.05.2019
Сообщений: 1,835
Записей в блоге: 4
14.07.2021, 15:55
Цитата Сообщение от Volga_ Посмотреть сообщение
Я думал, что вы хотите вызвать функцию Pomidor(), которая была объявлена из файла lib. А не так, да ?
Я объявил её без extern потому что в либе она тоже без extern и пошло увидело статическую библиотеку и дало результат может extern нужен я то без понятия.
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
14.07.2021, 16:01
Nexi99, может быть я не правильно понять ваш вопрос, извините.
0
143 / 27 / 4
Регистрация: 06.05.2019
Сообщений: 1,835
Записей в блоге: 4
14.07.2021, 16:04
Да вот почитал https://ravesli.com/urok-6-rez... i-release/ нужно выбрать Release, связь с VC пропадёт да и ПО будет работать быстрее

Добавлено через 1 минуту
Цитата Сообщение от Volga_ Посмотреть сообщение
Nexi99, может быть я не правильно понять ваш вопрос, извините.
я просто про extern спрашиваю раз уж вы написали нужен он или нет, в dll он нужен хотя там можно делать def файл, а здесь фиг его знает. В либе extern нет я выше написал. Моя ошибка была в том что нужно было написать название функции это своего рода имитация таблицы импорта.
0
Just Do It!
 Аватар для XLAT
4203 / 2661 / 654
Регистрация: 23.09.2014
Сообщений: 9,027
Записей в блоге: 3
14.07.2021, 18:40
Цитата Сообщение от Nexi99 Посмотреть сообщение
Я собираю на дебагере как 32битные
вы не поняли что я написал.

я написал вам, что разрядность и режим ДОЛЖНЫ СОВПАДАТЬ для библы и проги где она используется.

а что там вы захотите - 32 или 64, релиз или дебаг, то это будет до балды на успех компиляции...
0
143 / 27 / 4
Регистрация: 06.05.2019
Сообщений: 1,835
Записей в блоге: 4
15.07.2021, 00:10
Цитата Сообщение от XLAT Посмотреть сообщение
вы не поняли что я написал.
я написал вам, что разрядность и режим ДОЛЖНЫ СОВПАДАТЬ для библы и проги где она используется.
Это понятно но ошибка в другом была. Нужно было функцию написать тогда компилятор знает что вытаскивать. Я с этими штуками не работал поэтому не знал что к чему.
Скажите а extern обязательно везде дописывать?
0
Just Do It!
 Аватар для XLAT
4203 / 2661 / 654
Регистрация: 23.09.2014
Сообщений: 9,027
Записей в блоге: 3
15.07.2021, 00:27
Цитата Сообщение от Nexi99 Посмотреть сообщение
Скажите а extern обязательно везде дописывать?
extern пишется для глобальной переменной(встроенного или юзерского типа), а функция просто декларируется(объявляется).

а если у вас чистый ооп, то забудьте про extern,
(не зря же столько разговоров про то, что глобалы зло)
а вместо него в хедерах библы интерфейсные классы.
0
143 / 27 / 4
Регистрация: 06.05.2019
Сообщений: 1,835
Записей в блоге: 4
15.07.2021, 00:36
Если есть
Цитата Сообщение от XLAT Посмотреть сообщение
extern,
то подразумевается подача данных со стороны, т.е. их нет изначально, но это по моему практическому опыту и да обычно речь идёт о глобальных переменных. Поэтому лепить его куда попало наверное не нужно.
0
Just Do It!
 Аватар для XLAT
4203 / 2661 / 654
Регистрация: 23.09.2014
Сообщений: 9,027
Записей в блоге: 3
15.07.2021, 00:43
Цитата Сообщение от Nexi99 Посмотреть сообщение
то подразумевается подача данных со стороны, т.е. их нет изначально
это из устаревших лекал проектирования столетней давности.

нормально, это когда ваша библиотека ваще не содержит никаких данных, а содержит только типы!
0
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
15.07.2021, 10:51
Цитата Сообщение от Nexi99 Посмотреть сообщение
нужно было написать название функции это своего рода имитация таблицы импорта.
Это - корректный текст единицы трансляции в Си, хоть и в устаревшем стиле
C
1
2
3
int main() {
        return function(1);
}
Windows Batch file
1
cl /c /Tc caller.c /nologo
Но в с++ отсутствие объявления function - уже ошибка:
Windows Batch file
1
cl /c /Tp caller.c /nologo
Code
1
2
caller.c
caller.c(2): error C3861: function: идентификатор не найден
В у компилятора с++ должна быть возможность вычислить тип.
0
143 / 27 / 4
Регистрация: 06.05.2019
Сообщений: 1,835
Записей в блоге: 4
15.07.2021, 14:25
Цитата Сообщение от politoto Посмотреть сообщение
Но в с++ отсутствие объявления function - уже ошибка:
Я об этом не знал со статическим библиотеками не работал. Я так понимаю что lib после компиляции основной программы уже не нужен, компилятор поставит нужную вам функцию в программу а остальное не учитывается и можно выбрасывать?
0
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
15.07.2021, 16:09
Цитата Сообщение от Nexi99 Посмотреть сообщение
Я об этом не знал со статическим библиотеками не работал.
В рассматриваемом случае статические библиотеки ни при чём. Не компилируется некорректный исходный "файл" на c++.
Цитата Сообщение от Nexi99 Посмотреть сообщение
lib после компиляции основной программы уже не нужен, компилятор поставит нужную вам функцию в программу
Библиотеки - это способ организации работы с объектными модулями.
Традиционный компоновщик находит в библиотеке объектные модули, содержащие символы, на которые есть ссылки в программе, и вставляет целиком объектный модуль, в котором определён символ.
Конечные результат такой же, как если бы вручную добавили все нужные модули в проект или командную строку.
0
143 / 27 / 4
Регистрация: 06.05.2019
Сообщений: 1,835
Записей в блоге: 4
15.07.2021, 21:38
Цитата Сообщение от politoto Посмотреть сообщение
Конечные результат такой же, как если бы вручную добавили все нужные модули в проект или командную строку.
очень полезное свойство в отличие от того чтобы таскать dll со всеми её функциями да ещё и подключать каждый раз. Но опять же каждом своё нужно в тот или иной момент поэтому я решил и статические библиотеки рассмотреть.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.07.2021, 21:38
Помогаю со студенческими работами здесь

Можно ли подключить библиотеки .lib и .dll?
Можно ли подключить библиотеки .lib и .dll? И если можно, то как это делается (среда NetBeanse)?

Как подключить SDL в Visual Studio ?
#include &lt;iostream&gt; #include &lt;SDL.h&gt; using namespace std; int main() { } Программа не компилируется и выдает ошибку...

Как правильно подключить библиотеку SDL
Здравствуйте, подскажите, пожалуйста, как правильно подключить библиотеку SDL. Я пользуюсь компилятором Code::Blocks. При подключении...

Как подключить SDL 2.0 в проекте с CMake?
Я использую IDE CLion. Я хочу подключить библиотеку SDL 2.0 в CMakeList.txt. Я прочитал, что CMake сам может искать библиотеки, но как и...

Не удается открыть файл SDL.lib
проделал все как сказано здесь http://twinklebeardev.blogspot.com/2012/07/setting-up-sdl-in-visual-studio.html кидал SDL.dll и в system32...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru