第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

可以在多線程 DLL 的接口函數(shù)中創(chuàng)建線程嗎?

可以在多線程 DLL 的接口函數(shù)中創(chuàng)建線程嗎?

守候你守候我 2019-02-20 19:15:38
我把自己寫的一些函數(shù)做成了支持多線程的DLL?,F(xiàn)在有一個(gè)需求:調(diào)用 DLL 的 A 函數(shù)時(shí),需要在 A 中創(chuàng)建一個(gè)工作者線程。線程創(chuàng)建函數(shù) thread_create(thread_t *th,void *(*start)(void*),void *arg) 調(diào)用_beginthreadex 創(chuàng)建線程。不知能否這樣做???現(xiàn)在的情況是,當(dāng)其他應(yīng)用程序調(diào)用這個(gè) DLL時(shí),就說:無法解析的外部符號(hào) _thread_create,該符號(hào)在函數(shù) A 中被引用(IDE:VS2005)謝謝,忘了說了,我的是 C 的程序,發(fā)到C#這兒了,不好意思。我沒有在 DLLMain 中創(chuàng)建線程,而是其他導(dǎo)出函數(shù)。在幫我分析下?呵呵A 函數(shù)的實(shí)現(xiàn)沒有寫到C文件中。thread_create 是DLL 的內(nèi)部函數(shù),不是導(dǎo)出函數(shù),不需要導(dǎo)出吧。
查看完整描述

4 回答

?
翻翻過去那場(chǎng)雪

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊

共享一份DLL
-------------
原因涉及DLL加載和運(yùn)行機(jī)制,主要有兩點(diǎn):
1)DLL動(dòng)態(tài)鏈接庫無法獨(dú)立運(yùn)行,必須由一個(gè)應(yīng)用程序進(jìn)程加載到進(jìn)程空間后才能使用。加載DLL的進(jìn)程稱為宿主進(jìn)程。被加載的DLL屬于宿主進(jìn)程,不屬于宿主進(jìn)程內(nèi)某個(gè)線程。
2)宿主進(jìn)程可以重復(fù)調(diào)用,甚至重復(fù)加載DLL。第1次調(diào)用DLL或第1次加載DLL時(shí),宿主進(jìn)程將DLL引入進(jìn)程空間。一旦宿主進(jìn)程成功加載DLL,隨后的重復(fù)調(diào)用或重復(fù)加載只會(huì)增加“引用計(jì)數(shù)”,而不會(huì)加載多份DLL,所以進(jìn)程中只有一份DLL。

查看完整回答
反對(duì) 回復(fù) 2019-03-26
?
慕容森

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊

C#本身就能支持線程,為什么還要多此一舉的去調(diào)用DLL創(chuàng)建線程了.
印象中微軟說過不要再DllMain中創(chuàng)建線程,否則會(huì)死的很慘.可以查閱MSDN.
不過導(dǎo)出函數(shù)中應(yīng)該是可以創(chuàng)建線程的...應(yīng)該是你的代碼寫滴不對(duì),不過沒必要舍近求遠(yuǎn)吧

查看完整回答
反對(duì) 回復(fù) 2019-03-26
?
蠱毒傳說

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊

應(yīng)該是你的A函數(shù)的實(shí)現(xiàn)寫在頭文件里了。A里面調(diào)用了thread_create,但是thread_create的實(shí)現(xiàn)沒有從dll里export出來,所以就出這個(gè)錯(cuò)。
解決辦法:把A函數(shù)的實(shí)現(xiàn)寫到C文件里,頭文件里只包含一個(gè)聲明就夠了。 記得導(dǎo)出A函數(shù)。。。

thread_create不需要導(dǎo)出。一個(gè)原則:只要你的客戶端(就是調(diào)用DLL的程序)代碼能看見thread_create,肯定就會(huì)有問題。你只要把A函數(shù)放到dll代碼的C文件里,頭文件里只留個(gè)聲明,這樣客戶端就看不到thread_create,也就不會(huì)出現(xiàn)剛才那個(gè)錯(cuò)誤。

查看完整回答
反對(duì) 回復(fù) 2019-03-26
  • 4 回答
  • 0 關(guān)注
  • 1776 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)