3.5、卸載一個應用程序

要卸載一個應用程序,你可以通過以下的幾種方法:(如果它沒有被鎖定)

1、在應用程序裏卸載一個應用程序使用AcRxDynamicLinker::unloadModule().函數。

2、使用APPLOAD對話框來卸載,這個界面給用戶提供添加和刪除應用程序的功能。

3、從AutoLISP裏面的arxunload函數。

4、 使用ObjectARX裏面的acedArxUnload函數。

5、使用選項和命令卸載應用程序。


默認情況下,應用程序是被鎖住了並且不能別卸載,要定義可卸載的應用程序,應用程序必須保證AutoCAD和其他應用程序不再指向和引用應用程序中的結構或對象,在你是你的應用程序變成可卸載之前,你必須要保存沒有靜態的應用程序包含任何指向你程序空間的對象,要查看不能被卸載的應用程序,請參考3.2節卸載應用程序。

要使得你的應用程序可卸載,你需要存儲AcRx::kInitAppMsg消息裏面的pkt指針的值,這個參數將會被unlockApplication()函數使用,默認應用程序是鎖定的,如果你解鎖應用程序,它就能夠被卸載,要鎖住和解鎖應用程序,使用下面的兩個函數。

bool
AcRxDynamicLinker::lockApplication(void* pkt) const;
bool
AcRxDynamicLinker::unlockApplication(void* pkt) const;
下面的函數檢查應用程序是否被鎖住

bool
AcRxDynamicLinker::isApplicationLocked(const char* name) const;
還提供了類似的全局函數:

bool
acrxLockApplication(void* pkt);
bool
acrxUnlockApplication(void* pkt);
bool
acrxApplicationIsLocked(const char* modulename);




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章