免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
CString和LPVOID的轉(zhuǎn)換(線程參數(shù)傳遞) .
CString和LPVOID的轉(zhuǎn)換(線程參數(shù)傳遞) .
標(biāo)簽: 測試
2012-07-07 22:15 4364人閱讀 評論(0)  舉報
網(wǎng)上找到很多結(jié)果,中文的,外文的。像codeproject,stackoverflow等等,看到的結(jié)果都不能解決問題。
自己動手,豐衣足食。
msdn上說,CString可以用來隨意替換const char* and LPCTSTR 類型的函數(shù)形參。隨意轉(zhuǎn)換就是了。具體不深究,解決問題先。
聲明一下使用目的:給新開線程傳入CString類型字符串值,但AfxBeginThread函數(shù)需要傳入LPVOID類型參數(shù)。于是,矛盾開始了。
static  CString s=_T("640x480_3.jpg");//如果函數(shù)內(nèi),一定要聲明是static,否則在別的函數(shù)調(diào)用本函數(shù)聲明的自動變量,除非你想開玩笑?;蛘呷郑o態(tài))變量。總之要保證另一個函數(shù)可以訪問這個地址。
先看幾個相關(guān)的地址(位于當(dāng)前線程,當(dāng)時調(diào)試環(huán)境):
s的地址:
m_pszData = 0x0184e0a0 "640x480_3.jpg"
s.GetBuffer()(真正數(shù)據(jù)的地址):
m_pszData = 0x0184e0e0 "640x480_3.jpg"
CString *p=&s:
p = 0x2d6bd764 {0x0184e0a0}
m_pszData = 0x0184e0a0 "640x480_3.jpg"
傳遞p肯定不對??梢詡鬟f(LPVOID)p->GetBuffer()=(LPVOID)s.GetBuffer():0x0184e0e0 ,但實際lpParam獲得的地址依然是0x0184e0a0 。
先提示一句,要想調(diào)用函數(shù)能夠準(zhǔn)確獲得CString數(shù)據(jù),必須且只能傳遞s對象的地址“0x0184e0a0”,并不是&s。
現(xiàn)在總結(jié)一下可行的調(diào)用方法:
1.        AfxBeginThread(ThreadFunction,(LPVOID)(LPCTSTR)s);//這個必須是s的地址了。
即,(LPVOID)(LPCTSTR)s=s的地址=lpParam = 0x0184e0a0 {void*}
其他的傳入?yún)?shù)均不正確。如(LPVOID)((LPCTSTR))s.GetBuffer()=0x0184e0e0 獲取到的數(shù)據(jù)為空。
至于其他的CString*什么的轉(zhuǎn)換,我這里沒有嘗試,切記,傳入s對象的地址。
2.       AfxBeginThread(ThreadFunction,(LPVOID)s.GetBuffer());
s.GetBuffer()的地址肯定不等于s對象的地址,但ThreadFunction中的 lpParam獲得的依然是正確的s對象的地址。
這種調(diào)用竟然也可以,暫未研究。
還有一種情況,如果傳入的是字符串常量值,可以這樣調(diào)用:
3.       AfxBeginThread(ThreadFunction,(LPVOID)_T("640x480_3.jpg"));
其實這也很好理解,此時傳入的是保存字符串字面常量_T("640x480_3.jpg")的位置的地址,相當(dāng)于上面的s。
接收函數(shù):
UINT ThreadFunction(LPVOID lpParam)
{
CString fileName=(LPCTSTR)lpParam;//上面3種情況均測試,可以正確解析。
}
希望這些方法在大家的電腦上一樣順利運(yùn)行。good luck。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
AfxBeginThread函數(shù)參數(shù)傳遞的問題 | 學(xué)步園
VC知識庫文章
利用GetPrivateProfileString讀取配置文件(.ini)
vc字符串轉(zhuǎn)換處理:(絕對精華,收集所有的例子)
(轉(zhuǎn))CString詳解以及CString轉(zhuǎn)換成char* LPCTSTR LPSTR T...
VC:CString用法整理(轉(zhuǎn)載)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服