アセンブラ(FASM)を学んでいて、gtk_main_quit()をコールしたいときはいつでも "segmentation fault"で終わります。gtk_main_quitを呼び出すと、アセンブラコードの "segmentation fault"が発生する
gtk_main_quitをコールするとセグメンテーションフォルトが発生するのはなぜですか?返すために
TEST.ASM
format ELF
extrn gtk_init
extrn gtk_main
extrn gtk_main_quit
extrn gtk_window_new
extrn gtk_widget_show
extrn g_signal_connect_data
public main
on_window_close:
call gtk_main_quit ; <- segmentation fault
ret
main:
push 0
push 0
call gtk_init
add esp, 8
push 0
call gtk_window_new
add esp, 4
mov [window_handle], eax
push 0
push 0
push 0
push on_window_close
push on_close_signal
push [window_handle]
call g_signal_connect_data
add esp, 24
push [window_handle]
call gtk_widget_show
add esp, 8
call gtk_main
window_handle dd 0
on_close_signal db 'destroy', 0
メイク
all:
~/apps/fasm/fasm ./test.asm
gcc -o test test.o `pkg-config --cflags --libs gtk+-3.0`
、それが助けた、ありがとう:D – BPS