天天看點

ArcEngine中License權限等級更改的問題

01.權限問題

今天在調用GP時失敗(插值式開發,使用的是他人架構),因為需要Advanced級别權限。有兩點可以證明是權限不足:一是我在建立項目中測試成功,說明代碼參數沒問題;二是在問題架構調用clip(隻需Basic級别)成功。更改變我的人生觀念的是:同僚們都說,既然權限不足,就在調用功能是再次初始化相應權限!在我的印象中,權限一旦初始化,就不可更改,除非結束程式。

02.還原真相

為了确認事實真相,我自己寫了代碼進行測試,在程式中更改權限是無效的。使用IAoInitialize接口進行初始化許可的原則:Initialize方法隻能調用一次,多餘無效,傳回esriLicenseAlreadyInitialized ,LicenseControl勾選多個許可也是無效的。即在程式運作過程中,不能再次更改許可等級。

ArcEngine中License權限等級更改的問題

03.修改權限

在修改已有架構的權限時,雖然有源代碼,但更改LicenseControl或使用AoInitialize無效,打開程式被強制關閉,并報錯-42,原來是OcxState作怪,必須全部手動删除,要麼隻有删除控件,全部重新拖放并布局。

ArcEngine中License權限等級更改的問題