您好,登錄后才能下訂單哦!
最近按公司要求封裝一個(gè)OCX,本來(lái)很簡(jiǎn)單的一件事卻遇到一個(gè)很奇怪的問(wèn)題。
在編譯器vs2010編譯后注冊(cè)報(bào)“逐用戶重定向”
當(dāng)時(shí)在莫度的帶領(lǐng)下差點(diǎn)全軍覆滅,提到2點(diǎn)解決方案(狗比膏藥--坑的一逼)
1.改工程屬性從DLL為lib
變成
這種方案雖然編譯器是過(guò)去了但是regsvr32注冊(cè)沒(méi)一點(diǎn)反應(yīng)。
2.改鏈接器配置
這個(gè)更狠,編譯器都過(guò)不了。
以上為爬坑分割線,下面來(lái)點(diǎn)干貨
當(dāng)時(shí)調(diào)用其它的DLL動(dòng)態(tài)庫(kù),還有OCX事件又是合作開(kāi)發(fā),沒(méi)辦法先縮小問(wèn)題范圍
把事件刪了-----外甥打燈籠--照舊
把工程分割開(kāi) ---- 本人的沒(méi)問(wèn)題(當(dāng)時(shí)高興的有一種要甩鍵盤(pán)的沖動(dòng))
合作開(kāi)發(fā)一個(gè)team不能拉下弟兄不管,就幫弟兄逐步縮減范圍。。。。
直到我們注釋了一個(gè)調(diào)DLL的函數(shù)(靜態(tài)方式調(diào)用,及.h+lib)發(fā)現(xiàn)
成了。。。。真成了
OCX工程中靜態(tài)調(diào)用DLL的接口,且參數(shù)是函數(shù)指針 既有可能是這個(gè)原因
后面需要在OCX用到多線程,但多線程__stdcall方式來(lái)進(jìn)行資源管理的,而在多線程方法里需要用到OCX事件,
當(dāng)時(shí)腦袋一熱不就是new個(gè)OCX的XXCtrl對(duì)象,然后對(duì)象.事件解決。(too young too simple)
JS崩潰了,JS崩潰了,JS真的無(wú)情的崩潰了(此處有n!+1個(gè)F**K)
開(kāi)動(dòng)小腦筋,多線程方法里不能NEW,設(shè)一個(gè)全局變量不就OK了
然后遇到了多年未見(jiàn)的老朋友(“注冊(cè)失敗 逐用戶重定向”),雖然才1天沒(méi)見(jiàn),但見(jiàn)到不希望見(jiàn)到的總感覺(jué)
快過(guò)了一輩子。
OCX工程代碼重新new控制類對(duì)象 既有可能是這個(gè)原因
解決辦法是:老子刪了多線程代碼,投入while大法的懷抱(此處有壞笑大笑)
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。