
Andrei
16.04.2016
23:50:30
dlopen скорее всего даже не поймет где у виндовой либы искать таблицу с экпортом
Ты ведь после dlopen еще делаешь что-то вроде givefunctionptrbyname
get*

Сергей
16.04.2016
23:51:48
А можно ручками загрузить файл бибилиотеки в память процесса, поискать экспортируемые функции, присвоить своим переменным с типом этих функций и юзать

Google

Сергей
16.04.2016
23:51:56
Ну, в винде так можно
В линуксе тоже наверн

Ned Ogl
16.04.2016
23:52:15

Сергей
16.04.2016
23:52:28
Ну это да

Ned Ogl
16.04.2016
23:52:37
спасибо мужики, вы офигенны

Andrei
16.04.2016
23:53:05
Обращайся.

Ned Ogl
16.04.2016
23:53:11
а где лежат исходники к самым ходовым либам?
или только качать в сети?
ядро хранит где-то свои исходники вроде, нет?

Stanislav
16.04.2016
23:53:33

Ned Ogl
16.04.2016
23:53:51

Stanislav
16.04.2016
23:54:01

Andrei
16.04.2016
23:54:03
Меджик

Google

Ned Ogl
16.04.2016
23:54:10

Stanislav
16.04.2016
23:54:15
эм
там не меджик, там все разное

Сергей
16.04.2016
23:54:37
PE/ELF

Andrei
16.04.2016
23:54:39
Понятно что разное. Просто обычно в бинарных файлах сперва пишут меджик
В винде во всех популярных форматах практически.
Ну да.
Что могут и виндовый попытаться открыт
Кажется wine что-то такое и делает

Stanislav
16.04.2016
23:57:22
ну только через вайн или моно) если PE файл - дотнетовский

Ned Ogl
16.04.2016
23:58:01
вот еще вопрос
простой пример - файл wireless.h
в первых строках #ifdef __KERNEL__
как это понять? кто дефайнит кернел, если никто не подключён выше и ниже, если сам он предназначен для инклуда? если компиль или препроцессор, то где почитать о дефайнах компиля и препроцессора?

Andrei
16.04.2016
23:59:39
Кто-то может писать код в ядро.

Stanislav
16.04.2016
23:59:50
дефайный может передавать в параметрах компиля
-DKERNEL
-D__KERNEL__

Andrei
17.04.2016
00:00:11
И если его код будет цеплять этот файл, то его код и будет до инклюда дефайнить кернел. Либо через флаг компилятору

Google

Ned Ogl
17.04.2016
00:00:53
Это супергруппа, тут можно редактировать свои сообщения
Отлично.
Тогда вторая часть вопроса
очевидно, что __cplusplus дефаайнит сам g++

Andrei
17.04.2016
00:02:33
Смотри, заголовочные файлы просто вставляются тупо как текст в нужное место поэтому можно написать прям в файле #define __KERNEL__\r\n#include "wireless.h"
И в этот файл подставить вайрлесс с разворачиванием ифов кернела.
Он еще много чего интересного дефайнит кстати.

Ned Ogl
17.04.2016
00:04:14
ну так вот где прочитать, что именно он дефайнит и при каких условиях? может кто знает

Andrei
17.04.2016
00:05:29
http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html
И там две соседние главы.
Про макросы системы и макросы стандарта.

Ned Ogl
17.04.2016
00:07:16
ага, спасибо
зачем делают #define NAME 1
зачем единичка?

Andrei
17.04.2016
00:08:40
Вроде опять же для backward compatibility. Хотя наверное смысле нет. Но это как с __сplusplus.
Там лежит обычно версия языка

Ned Ogl
17.04.2016
00:09:16
хотя мб для того, чтобы если вдруг имя было использовано где-то, выскочила ошибка
вроде "откуда взялась тут эта единичка"?

Google

Andrei
17.04.2016
00:09:35
Да кстати, тоже вариант.

Ned Ogl
17.04.2016
00:10:14
где-то полгода назад, когда я пытался читать код библиотек С, на меня это наводило страх и ужас
мол, кто это все писал и зачем так страшно
кстати, встретил #if defined(NAME) ...
defined() - это макрос или реальная чья-то функция?

Andrei
17.04.2016
00:11:41
Часть языка
НЕ чья-то функция.

Ned Ogl
17.04.2016
00:13:25
Может прозвучать глупо, но будучи ещё новичком в системном программировании, замечу, что чертовски приятно читать ядро линукс и понимать, что там написано
прогаю под blackfin-bf533-ezkit и для него в ядре есть свои отдельные .c файлы

Admin
ERROR: S client not available

Ned Ogl
17.04.2016
00:14:10
круто читать и понимать, что будет делать твоя железка

Andrei
17.04.2016
00:16:08
Норм. В хороших вузах об этом просто курсы читают.

Ned Ogl
17.04.2016
00:17:26
ну не сказать, что я из плохого вуза)

Andrei
17.04.2016
00:17:44
Майкрософт тоже скоро ядро раскроет по большей части.
Эппловцы тоже раскрывают часть.

Ned Ogl
17.04.2016
00:18:07
МГУ, мехмат
на ВМК у нас мб и читают

Andrei
17.04.2016
00:18:14
Норм.

Ned Ogl
17.04.2016
00:18:21
но я от этого далёк, яжматематик

Google

Ned Ogl
17.04.2016
00:18:31
С и С++ только чтобы считать всякую ебанинку

Andrei
17.04.2016
00:18:37
Чем занимаешься, математик?
Какой курс?

Ned Ogl
17.04.2016
00:18:47
3й

Andrei
17.04.2016
00:19:26
А занимаешься чем?
Или вернее чем хочешь?

Ned Ogl
17.04.2016
00:21:10
занимаюсь тем, что пошёл на новую кафедру Теоретической Информатики под научное руководство чувака из Электронтеха. Нам платят бабки, мы работаем на Электронтех, одновременно это является темой курсача. Вот и вся история. Я занимаюсь прошивкой платы на BF533. Сначала закачиваю линх, потом буду под неё прогать
Потом прогать прошивку для bf609
итд

Andrei
17.04.2016
00:21:36
Понятно. Странное это имеет отношение к математике.

Ned Ogl
17.04.2016
00:21:42
потому и узнавал про статическую линковку, либы, и как оно все работает
Понятно. Странное это имеет отношение к математике.
казалось бы. но blackfin - это линейка сигнальных процессоров и наша задача - обработать проходящий через железку видео-аудио-РЛС сигнал средствами железки, не проебав памяти, пакетов, времени и не повиснув.

Andrei
17.04.2016
00:22:05
Да и к "теоретической" информатике тоже.

Ned Ogl
17.04.2016
00:22:51
тут и нужна математика
фурье, хурье и прочая хрень
"будем паять нейросети?" спрашивают второкуры на встрече с кафедрой
"будете" горестно вздыхая, обещаю я

Andrei
17.04.2016
00:23:34
Лол.
Зачем их паять когда есть fpga :3
Я вот кстати по работе ровно этим вскоре буду занят.

Ned Ogl
17.04.2016
00:24:13

KrivdaTheTriewe
17.04.2016
00:24:15