I try to test the callback from newlisp.dll to newlisp.exe
Code: Select all
(import "user32.dll" "MessageBoxA")
(import "newlisp.dll" "newlispEvalStr")
(define (mycallback stext)
(eval-string stext)
)
(setq callbackadr(callback 0 'mycallback))
(MessageBoxA 0 (string "This is callbackadr: " callbackadr) "newLISP EXE" 0)
(setq newlispstr (string "(setq nlmaincallback print)(cpymem(pack \"ld\" 265)(first(dump nlmaincallback))4)(cpymem(pack \"ld\" "callbackadr")(+(first(dump nlmaincallback))12)4)(cpymem(pack \"ld\" "nlmaincallback")(+(first(dump nlmaincallback))8)4)"))
(MessageBoxA 0 (string "This is newlispstr: " newlispstr) "newLISP EXE" 0)
(newlispEvalStr newlispstr)
(MessageBoxA 0 (string "This is next step") "newLISP EXE" 0)
(MessageBoxA 0 (mycallback "(string(symbols))") "newLISP EXE" 0)
(MessageBoxA 0 (newlispEvalStr "(nlmaincallback \"(string(symbols))\")") "newLISP EXE" 0)
So is it possible to callback newLISP.exe from newlisp.dll ?