Важная информация

User Tag List

Страница 4 из 32 ПерваяПервая 12345678 ... ПоследняяПоследняя
Показано с 31 по 40 из 320

Тема: Библиотеки-модули-программы...

  1. #31
    Master Аватар для elf/2
    Регистрация
    14.01.2005
    Адрес
    N.Novgorod
    Сообщений
    803
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от acidrain
    Скажем так, керналь (exec.library на амми) ничего не литнкует! Зачем линковать? Прога запросила либлу, скажем gadgets.library - ехес ее ищет, грузит в память, возвращает ее хендл (адрес в мемори т.е. точка входа), прога уже со смещением от хендела (т.с. номер подфункции) в регистре D0 (типа А на з80) вызывает начальный адрес либлы - тама физически прописаны jp $......
    моск совсем изъеден а чем это отличается от виндового:

    HMODULE h = LoadLibrary(pluginName);
    FOO fn = (FOO)GetProcAddress(h,"foo");
    (*fn)();
    CloseHandle(h);

    или линуксового:

    m = dlopen("libsample.so", RTLD_LAZY);
    fn = (FOO)dlsym(m, "foo");
    (*fn)();
    dlclose(m);

  2. #31
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #32
    Veteran Аватар для icebear
    Регистрация
    05.05.2005
    Адрес
    Германия
    Сообщений
    1,614
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от acidrain
    Ошиблись. =) А особенность в том, что они не так сделаны и не ресурсоемкие и для работы им не надо много тонн памяти, как в других случаях.
    Это не ответ. Я верю, что они "не так сделаны", а вот почему и как и что?

    Цитата Сообщение от acidrain
    Вы бы сначала изучили что такое амижные либлы и с чем их едят.
    For info: http://www.nedopc.org/forum/viewtopi...&highlight=lib
    http://www.nedopc.org/nedopc/shaos/libman_r.shtml
    А где там про амижные либы? Либо когда Спринтер успел превратится в Амигу?

  4. #33
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,258
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    36 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от elf/2
    HMODULE h = LoadLibrary(pluginName);
    FOO fn = (FOO)GetProcAddress(h,"foo");
    (*fn)();
    CloseHandle(h);

    или линуксового:

    m = dlopen("libsample.so", RTLD_LAZY);
    fn = (FOO)dlsym(m, "foo");
    (*fn)();
    dlclose(m);
    Угу. Вот про это я и говорил. Те же фаберже только в профиль. Товарисчи кроме винды ничего не видели, зато вовсю гордятся тем, что видели амигу, а другие нет.

  5. #34
    Activist Аватар для acidrain
    Регистрация
    01.03.2005
    Адрес
    Russia, Krasnodar
    Сообщений
    433
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    вот чем отличается:
    Код:
    ;    /+===========================================================+/
    ;   //                                                           //
    ;  //   Open all Needed Libraries and Try Optional Ones.        //
    ; //                                                           //
    ;/+===========================================================+/
    OpenLibs
    
            ;==== Exec Always needed !
            move.l  #EM0,Exitmessage
            move.l  Execbase,a6
            move    #39,d0          ;version
            lea     IntName,a1
            call    OpenLibrary
            move.l  d0,Intuibase
            tst.l   d0
            beq     .fail
    
            ;==== Dos needed for VBL task (NO MORE VBLTASK).
            ;==== dos always needed.
            IFNE    Own_Dosbase
                move.l  #EM1,Exitmessage
                move    #36,d0          ;version
                lea     DosName,a1
                call    OpenLibrary
                move.l  d0,_DOSBase
                tst.l   d0
                beq     .fail
            ENDC
            ;==== ASL needed for screen request.
            move.l  #EM2,Exitmessage
            move    #36,d0          ;version
            lea     _AslName,a1
            call    OpenLibrary
            move.l  d0,Aslbase
            tst.l   d0
            beq.b   .fail
    
            ;==== Graphics always needed.
            move.l  #EM3,Exitmessage
            move    #39,d0          ;version
            lea     GraName,a1
            call    OpenLibrary
            move.l  d0,GfxBase
            tst.l   d0
            beq.b   .fail
    
            ;==== Cybergraphics.library can be here or NOT !!
            ;==== if d0 = 0, CGX Screens are impossible.
            move    #39,d0          ;version number was not checked.
            lea     Cgxname,a1      ;"39" must work for CGX3 and 4.
            call    OpenLibrary
            move.l  d0,Cgxbase      ;can not cause error.
    
            ;===== we MUST open timer.device to synchronise the scripts. 
            ; OpenDevice("timer.device",0L, (struct IORequest *) AudioIO ,0L);
    
            ;== alloc some iorequest
    
            ;error = OpenDevice(devName, unitNumber, iORequest, flags)
            ;D0                A0       D0          A1         D1
    
            move.l  #IOTV_SIZE,d0   ;size of "iorequest for timer device" structure.
            jsr     _AllocRmb
            tst.l   d0
            beq.s   .fail
            move.l  d0,TimerDev
            move.l  d0,a1
            
            move.l  Execbase,a6
            lea     Timername,a0
            move.l  #UNIT_MICROHZ,d0        ; It has precision down to about 2 microseconds,...
            clr.l   d1      
            call    OpenDevice
            move.l  d0,TimerDevResult       ;used for closing
            tst.l   d0                      ; 0 if successful
            beq     .nodevice
                    clr.l   d0
            bra.s   .yesdevice
    .nodevice
                    moveq.l #-1,d0  
    .yesdevice
    
    
    ;Note: if CGX is not present, 0 is returned as base.
    ; It can be a nice way to decide if the screen will be
    ; AGA or CGX.
    ;
    .ok
            moveq.l #-1,d0          ;no error!!!
    .fail
            rts
    =)
    Ребятки, либо я плохой учитель либо вы аккордионисты.
    Последний раз редактировалось acidrain; 07.07.2007 в 15:16.
    http://amigasc.nm.ru

    Free coder and hardwareman
    Amiga addicted

  6. #35
    Activist Аватар для acidrain
    Регистрация
    01.03.2005
    Адрес
    Russia, Krasnodar
    Сообщений
    433
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Чтоб вас не вводить в заблуждение -
    Код:
    ;    +------------------------------------------------------------+
    ;   /                                                            /
    ;  /                    Useful Macros                           /
    ; /                                                            /
    ;+------------------------------------------------------------+
    
    call            macro
                    jsr     _LVO\1(a6)
                    endm
    http://amigasc.nm.ru

    Free coder and hardwareman
    Amiga addicted

  7. #36
    Master Аватар для elf/2
    Регистрация
    14.01.2005
    Адрес
    N.Novgorod
    Сообщений
    803
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от acidrain
    вот чем отличается:
    код поскипал... честно, не понял что ты этим исходником хотел сказать
    ну на асме он, ну и что?

    в винде тоже можно:
    1. в рантайме загрузить библиотеку по имени и получить в какой-то регистровой паре ее handle (он не является адресом загрузки, ну и что?)
    2. если вернули INVALID_HANDLE_VALUE то есть какие-то проблемы, какие именно можно узнать дернув еще одну системную функцию
    3. дальше получаем указатель на функцию передав ее имя или порядковый номер (после этого они нам не нужны)
    4. зовем ее по этому указателю напрямую
    5. когда библиотека больше не нужна, выгружаем ее
    6. если библиотека собрана без base relocation то грузиться она будет по фиксированным адресам и накладных расходов при загрузке не будет...

    подозреваю что read-only сегменты (код) могут шариться между процессами, хотя утверждать этого не буду

    возможно при компиляции кода получиться больше чем в предложенном примере, но если есть желание то можно и на асме написать...

    Цитата Сообщение от acidrain
    Блин, совок в действии! Такого сопротивления на западе вряд ли встретишь, по личному опыту знаю.
    а причем здесь совок? мне интересно понять чем именно амиговский подход к работе с либами сильно отличается от той же винды.


    забыл добавить что init/cleanup тоже есть, система дергает фунцию dllMain c нужным аргументом
    Последний раз редактировалось elf/2; 12.10.2006 в 15:04.

  8. #37
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,258
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    36 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от acidrain
    Такого сопротивления на западе вряд ли встретишь
    Сопротивления ЧЕМУ? Промывке мозгов на тему того, что в амиге все сделано единственно правильным методом? Как наглядно показал elf/2, в той же винде и линухе с динамическими библиотеками работа идет ТОЧНО ТАК ЖЕ- подключили-вызвали-освободили. Это и есть динамическая линковка в runtime.

  9. #38
    Veteran Аватар для icebear
    Регистрация
    05.05.2005
    Адрес
    Германия
    Сообщений
    1,614
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от acidrain
    Млин, читайте, народ, не беситесь! Написал же, что я не только амигой и спеком увлечен. И для информации дал ссылки! Мне еще кому что разжевать?! Я не думал, что уважаемый мной icebear настолько невнимателен.
    Дело скорее всего в тебе Как прикажешь понимать приведённые тобой линки сразу после твой же фразы "Вы бы сначала изучили что такое амижные либлы и с чем их едят."?

    Цитата Сообщение от acidrain
    Не, ну смешно! А ты TOS видел? Давайте пиписьками меряться?
    Да нет, какие пиписьки? Ты сказало, что амижные либы круче, вот народ и заинтересовался, "потянулся". А ты сразу обижаться. Написал бы понятнее, вопросов бы не возникло. Так что всё нормально

    Цитата Сообщение от acidrain
    И еще, опишите процесс открытия, всезнайки наши, либл в винде и линухе. я описал, хоть и поверхностно.
    Ну elf/2 написал же тебе уже.

  10. #39
    Veteran Аватар для icebear
    Регистрация
    05.05.2005
    Адрес
    Германия
    Сообщений
    1,614
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от acidrain
    А в том, что с моей подачи Шаос писал либман и применялся кое какой амижный опыт. Исчерпывающе?
    Для того, что бы догаться о таком развитии дел, какие способности надо иметь?

    Цитата Сообщение от acidrain
    Я не сказало - у меня есть пол, он МУЖСКОЙ. Не среднего рода. Я не говорил, что они круче, не приписывай.
    Ну чего ты как маленький. Я ошибся в написании, не нарочно, разве это так не ясно было. И за слова не цепляйся. Круче в данном случае - "что они не так сделаны и не ресурсоемкие и для работы им не надо много тонн памяти". Нафига кипятком писать, если смысл моих слова понятен? Если уж на принцип идти - вопрос мой был к yoko_ono, а отвечать стал ты. Кто теперь виноват, что твой ответ был непонятно сформулирован?

  11. #40
    Veteran Аватар для icebear
    Регистрация
    05.05.2005
    Адрес
    Германия
    Сообщений
    1,614
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от acidrain
    Далее уточните. Почему тоже самое на амми менее ресурсоемкое и более шустрое (сравнивая одинаковые мощности компов)?
    Зачем тогда dll на спеке мутить? Если на вашем любимом пц есть либлы? Делайте как на пц - не длл а либлы.
    Не про меня, но я влезу. Параметры ресурсоёмкости и шустрости, а так же одинаковых мощностей компов (единицы измерения интересуют) в студию. И ещё, надеюсь разница между dll и lib известна?

    PS: Предупреждая возможное неправильное толкование - ничего личного.

Страница 4 из 32 ПерваяПервая 12345678 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Управление эмулятором из zx-программы
    от Spectre в разделе Эмуляторы
    Ответов: 42
    Последнее: 29.08.2006, 12:58
  2. Кто может помочь в создании программы
    от Лебедев в разделе Люди
    Ответов: 9
    Последнее: 22.07.2006, 09:41
  3. Ответов: 7
    Последнее: 09.05.2006, 20:32
  4. Программы для модемов
    от p@lex в разделе Софт
    Ответов: 21
    Последнее: 11.02.2006, 21:36

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •