2
我需要一個Tcl回調函數的地址,所以我可以(用ffidl::callout
)傳遞到C DLL的SetCallback套路,即C語言是:如何得到一個Tcl proc的地址?
int SetCallback(long lAddress);
我需要一個Tcl回調函數的地址,所以我可以(用ffidl::callout
)傳遞到C DLL的SetCallback套路,即C語言是:如何得到一個Tcl proc的地址?
int SetCallback(long lAddress);
那麼,你應該正確聲明標註:
::ffidl::callout SetCallback {pointer-proc} int [ffidl::symbol ....]
重要的是您聲明的參數爲pointer-proc
。這可以讓你傳遞一個proc的名字(你必須先註冊它爲::ffidl::callback
)作爲參數。
該proc的實際地址通常不相關,您可能永遠不會看到它。
如果你真的想PROC(這是罕見的)的地址,那麼你可以使用
::ffidl::callout get_address {pointer-proc} pointer [::ffidl::symbol [::ffidl::find-lib ffidl] ffidl_pointer_pun]