2014-04-23 20 views
1

我正在寫一個PHP擴展名,並需要註冊一個資源。我一直在閱讀關於如何做到這一點,我所看到的所有例子傳遞一個變量什麼是'module_number'作爲參數zend_register_list_destructors_ex

module_number 

作爲最後一個參數來

zend_register_list_destructors_ex(NULL, NULL, DESCRIPTOR_NAME, module_number); 

無我發現解釋什麼是「module_number」是的文件。我想在我的電話使用該變量名的功能和我得到了以下錯誤:

ext\niklos\niklos.c(132) : error C2065: 'module_number' : undeclared identifier 
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\ 
VC\Bin\cl.exe"' : return code '0x2' 
Stop. 

什麼是最後一個參數的函數調用應該是或什麼是「module_number,因爲所有的其他例子有一直在使用?提前致謝。

回答

3

zend_register_list_destructors_ex 必須被稱爲由您的分機註冊的PHP_MINIT函數內部

如果你看看宏定義爲PHP_MINIT它擴展到

INT zm_startup _ ##模塊(整型,詮釋module_number TSRMLS_DC )

與##模塊是你的模塊的字符串名稱

module_number是傳遞到startu整數由發動機

p功能

該模塊的數字是PHP一直圍繞在內部,當它被註冊

的shmop擴展是一個簡單的擴展的一個很好的例子,使用資源

http://lxr.php.net/xref/PHP_5_5/ext/shmop/shmop.c#137識別擴展的ID

正在調用zend_register_list_destructors_ex

http://lxr.php.net/xref/PHP_5_5/ext/shmop/shmop.c#96

實施

這裏是MINIT功能註冊的地方

+0

謝謝親愛的!那太棒了。 –

相關問題