【ocx疑難雜症0】淺談OCX開發註冊「逐用戶重定向」問題

最近按公司要求封裝一個OCX,原本很簡單的一件事卻遇到一個很奇怪的問題。多線程

在編譯器vs2010編譯後註冊報「逐用戶重定向」ide

當時在莫度的帶領下差點全軍覆滅,提到2點解決方案(狗比膏藥--坑的一逼)函數

1.改工程屬性從DLL爲lib線程

【ocx疑難雜症0】淺談OCX開發註冊「逐用戶重定向」問題

變成
【ocx疑難雜症0】淺談OCX開發註冊「逐用戶重定向」問題
這種方案雖然編譯器是過去了可是regsvr32註冊沒一點反應。3d

2.改連接器配置指針

【ocx疑難雜症0】淺談OCX開發註冊「逐用戶重定向」問題

這個更狠,編譯器都過不了。對象


以上爲爬坑分割線,下面來點乾貨blog


當時調用其它的DLL動態庫,還有OCX事件又是合做開發,沒辦法先縮小問題範圍接口

把事件刪了-----外甥打燈籠--照舊事件

把工程分割開 ---- 本人的沒問題(當時高興的有一種要甩鍵盤的衝動)

合做開發一個team不能拉下弟兄無論,就幫弟兄逐步縮減範圍。。。。

直到咱們註釋了一個調DLL的函數(靜態方式調用,及.h+lib)發現

成了。。。。真成了

解決方案1:

OCX工程中靜態調用DLL的接口,且參數是函數指針 既有多是這個緣由

【ocx疑難雜症0】淺談OCX開發註冊「逐用戶重定向」問題

解決方案2:

後面須要在OCX用到多線程,但多線程__stdcall方式來進行資源管理的,而在多線程方法裏須要用到OCX事件,

當時腦殼一熱不就是new個OCX的XXCtrl對象,而後對象.事件解決。(too young too simple)

JS崩潰了,JS崩潰了,JS真的無情的崩潰了(此處有n!+1個F**K)

開動小腦筋,多線程方法裏不能NEW,設一個全局變量不就OK了

而後遇到了多年未見的老朋友(「註冊失敗 逐用戶重定向」),雖然才1天沒見,但見到不但願見到的總感受

快過了一生。

OCX工程代碼從新new控制類對象 既有多是這個緣由

解決辦法是:老子刪了多線程代碼,投入while大法的懷抱(此處有壞笑大笑)

相關文章
相關標籤/搜索