[英]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的情況下調用該函數。
我想通過它的路徑動態加載庫, dlopen
在C中執行 。
還有另一種方法可以在nasm中調用庫中的函數嗎?
只需像在C中那樣使用dlopen
和dlsym
。當然,你也必須將它們聲明為extern。 但是您不必鏈接任何庫,因為它們是由動態鏈接器dyld提供的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.