簡體   English   中英

NASM - 如何動態加載庫並調用其功能

[英]NASM - How can I dynamically load a library and call its function

如何從特殊目錄加載庫並調用其函數。

在正常情況下我使用extern例如

extern _fopen 

global main
section .text

main:

    xor r10,r10  

    push r10   
    mov r13, 0x6277
    push r13
    mov     rsi,rsp

    push r10   
    mov r13, 0x726964656b616d
    push r13
    mov     rdi,rsp

    call    _fopen
    mov     r14, rax
    ....

並在nasm使用ld加載庫

ld -o test -e main test2.o -lSystem 

但我想在不使用extern的情況下調用該函數。

我想通過它的路徑動態加載庫, dlopenC中執行

還有另一種方法可以在nasm中調用庫中的函數嗎?

只需像在C中那樣使用dlopendlsym 。當然,你也必須將它們聲明為extern。 但是您不必鏈接任何庫,因為它們是由動態鏈接器dyld提供的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM