Четверг, 28 Марта 2024, 11:58

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » C/C++ » Закрытый движок
Закрытый движок
SaiteiДата: Четверг, 30 Января 2014, 14:55 | Сообщение # 1
старожил
Сейчас нет на сайте
Как сделать? Ну, чтобы программист использовал фичи моего ( =)))) ) движка, но никак не мог посмотреть реализацию тех или иных функций?
Только не кидайтесь тапками. Я же не спрашиваю как написать движок biggrin

P.S. ещё один вопрос: а какая разница между движком и фреймворком?
VigilemДата: Четверг, 30 Января 2014, 15:03 | Сообщение # 2
частый гость
Сейчас нет на сайте
Копай в сторону dll и lib.
set16Дата: Четверг, 30 Января 2014, 15:22 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
Цитата
движком и фреймворком


Фреймворк - набор библеотек


=>The darkness of distant lands [3D]<=
vasua99Дата: Четверг, 30 Января 2014, 15:29 | Сообщение # 4
GNU follower
Сейчас нет на сайте
Создаешь статическую, либо динамическую библиотеку. Для клиентов(программистов) пишешь хидер(.h) с описанием функций, классов, переменных. После разработчик подключает хидер, и линкует(динамически или статически, в зависимости от вида библиотеки) твою либу. И все.

P.S Гугль smile


Жизнь игра, и мы в ней пешки... А я кушаю пельмешки)
SaiteiДата: Четверг, 30 Января 2014, 15:34 | Сообщение # 5
старожил
Сейчас нет на сайте
vasua99, то есть в хедере - описание, а в lib реализация функций?
Вот у меня по задумке есть некий "конвейер" ну или "менеджер функций". В одном месте я в него кладу указатели на функции, а в другом месте (уже внутри движка) эти функции вызываются. Значит мне нужна динамическая библиотека?

Добавлено (30.01.2014, 15:34)
---------------------------------------------
+как выглядят lib файлы? Их содержимое вообще никак нельзя просмотреть?

vasua99Дата: Четверг, 30 Января 2014, 15:41 | Сообщение # 6
GNU follower
Сейчас нет на сайте
Да. Но и статическая подойдет.

Добавлено (30.01.2014, 15:41)
---------------------------------------------
Тот же скомпилированный obj файл практически. Посмотреть можно разве что только дизассембелировав. Но мало кто захочет читать код на ассемблере. Поэтому прочитать их нельзя)

static library


Жизнь игра, и мы в ней пешки... А я кушаю пельмешки)
SaiteiДата: Четверг, 30 Января 2014, 15:48 | Сообщение # 7
старожил
Сейчас нет на сайте
vasua99, lib\dll - какая разница? И то, и то библиотеки...... Разве что dll я видел прямо в скомпилированных проектах........
Предположу что lib сразу во время компиляции в байт-код превращается и выдает исполняемый файл, а dll подгружается во время исполнения... Это так?
vasua99Дата: Четверг, 30 Января 2014, 15:57 | Сообщение # 8
GNU follower
Сейчас нет на сайте
Ну lib компилируется не в байт код, а в машинный код. С точки зрения производительности. статическая либа лучше. Ибо на загрузку dll тоже уходят ресурсы.

Жизнь игра, и мы в ней пешки... А я кушаю пельмешки)
SaiteiДата: Четверг, 30 Января 2014, 16:10 | Сообщение # 9
старожил
Сейчас нет на сайте
Цитата vasua99 ()
Но и статическая подойдет.

почему? Функции, которые я передаю в main, будут же вызываться внутри библиотеки.... Причем кол-во передаваемых ф-ций всегда разное... Или же Visual Studio сама все скомпонует и откомпилирует так, как надо? Видимо, я не очень понимаю разницу между lib и dll
vasua99Дата: Четверг, 30 Января 2014, 16:22 | Сообщение # 10
GNU follower
Сейчас нет на сайте
Если ты используешь статическую библиотеку, то она линкером соединяется с твоим файлом. Как если бы ты компилировал два .c файла в одну программу. Только тут ты компуешь уже скомпилированную библиотеку.

Жизнь игра, и мы в ней пешки... А я кушаю пельмешки)
avolkoffДата: Четверг, 30 Января 2014, 16:30 | Сообщение # 11
частый гость
Сейчас нет на сайте
Цитата Saitei ()
Функции, которые я передаю в main, будут же вызываться внутри библиотеки....

WTF?
Цитата Saitei ()
Видимо, я не очень понимаю разницу между lib и dll

По сути, что статическая, что динамическая библиотеки одно и тоже:
Статическая библиотека "пристыковывается" во время линковки.
Динамическая библиотека загружается в процессе выполнения программы.
DLL можно загружать самому в коде или подключить статическую библиотеку (созданную с DLL) которая будет загружать DLL перед началом точки входа.
Когда "грузишь" DLL сам, то приходится самому импортировать функции (короче загружать из DLL указатели на функции, находящиеся в DLL)
Когда используешь статическую для загрузки DLL они автоматически импортируются.

Насчет, сокрытия - ничего не сокроешь (реверс инжиниринг был, есть и будет есть:)), вопрос надо ли?


Сообщение отредактировал avolkoff - Четверг, 30 Января 2014, 16:48
SaiteiДата: Четверг, 30 Января 2014, 16:59 | Сообщение # 12
старожил
Сейчас нет на сайте
Цитата avolkoff ()

WTF?

Часть кода, где будет выполняться отрисовка, будет внутри кода (она, скажем так, скрыта "от глаз посторонних"). Там же будет извлечение указателей из очереди и их выполнение
Цитата avolkoff ()
По сути, что статическая, что динамическая библиотеки одно и тоже:
Статическая библиотека "пристыковывается" во время линковки.
Динамическая библиотека загружается в процессе выполнения программы.
DLL можно загружать самому в коде или подключить статическую библиотеку (созданную с DLL) которая будет загружать DLL перед началом точки входа.
Когда "грузишь" DLL сам, то приходится самому импортировать функции (короче загружать из DLL указатели на функции, находящиеся в DLL)
Когда используешь статическую для загрузки DLL они автоматически импортируются.

Насчет, сокрытия - ничего не сокроешь (реверс инжиниринг был, есть и будет есть:)), вопрос надо ли?

Не каждый захочет по-настоящему порыться во внутренностях движка... А кто захочет - тот практически всегда найдет то, что ему надо smile

vasua99, avolkoff, спасибо большое вам) Всё же буду копать в сторону lib, а не dll... А можно ли собрать одну библиотеку из других lib?
avolkoffДата: Четверг, 30 Января 2014, 21:53 | Сообщение # 13
частый гость
Сейчас нет на сайте
Цитата Saitei ()
А можно ли собрать одну библиотеку из других lib?

Проще и удобнее будет делать несколько, затем их линковать с программой...
Цитата Saitei ()
Не каждый захочет по-настоящему порыться во внутренностях движка...

Я роюсь в cry, много чего интересного... Код, код, код... :)
Цитата Saitei ()
А кто захочет - тот практически всегда найдет то, что ему надо

Это не зависит от уровня "хотения", ИМХО
Цитата Saitei ()
Часть кода, где будет выполняться отрисовка, будет внутри кода (она, скажем так, скрыта "от глаз посторонних").

Да, она полюбому внутри кода будет :) Для сокрытия исходного кода - статическая библиотека...
Цитата Saitei ()
Там же будет извлечение указателей из очереди и их выполнение

Указатели из очереди? Может делать проще? Например, вызывать функцию и всё, или делать при помощи функций обратного вызова?
IzaronДата: Четверг, 30 Января 2014, 22:34 | Сообщение # 14
Rammstein forever
Сейчас нет на сайте
Еще можно в проекте на юнити в С# скрипте порыться в ссылках и посмотреть UnityEngine.dll, правда, были видны только объявления классов, а их реализация - авоттрибуквы)

Но это потом стало неинтересно, т.к. примерно знаю, как работает программа, и бОльшая часть исходников юнити, включая редактор, который черт знает на чем создан, сокрыты
avolkoffДата: Четверг, 30 Января 2014, 23:17 | Сообщение # 15
частый гость
Сейчас нет на сайте
Цитата Izaron ()
Но это потом стало неинтересно, т.к. примерно знаю, как работает программа, и бОльшая часть исходников юнити, включая редактор, который черт знает на чем создан, сокрыты

На C++ скорее всего, наверное написано на сайте у них...
morgloddДата: Четверг, 30 Января 2014, 23:45 | Сообщение # 16
частый гость
Сейчас нет на сайте
Saitei, ИМХО ты перед тем как что то разрабатывать, лучшеб подучил язык.. Форум и так заполнен товарищами, незнающими элементарных вещей и лезущими в то, в чем не разбираются biggrin

C++/C#/PHP/JavaScript/ASM
avolkoffДата: Четверг, 30 Января 2014, 23:49 | Сообщение # 17
частый гость
Сейчас нет на сайте
morglodd, +
SaiteiДата: Пятница, 31 Января 2014, 14:11 | Сообщение # 18
старожил
Сейчас нет на сайте
morglodd, я уже 3-4 года на консоли торчу, справочник сотни раз перечитываю...... Да и в нем о библиотеках ничего не говорилось... Хотя да, язык я пока что знаю не на все 100. Но со временем исправлю-с
Форум игроделов » Программирование » C/C++ » Закрытый движок
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг