青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
On The Road
(cond ((less 'code) (less 'bug)))
C++博客
首頁(yè)
新隨筆
聯(lián)系
聚合
管理
隨筆 - 119 文章 - 290 trackbacks - 0
博客搬家了哦,請(qǐng)移步
叫我abc
常用鏈接
我的隨筆
我的評(píng)論
我參與的隨筆
留言簿
(12)
給我留言
查看公開(kāi)留言
查看私人留言
隨筆分類
《GAME PROGRAMMING GEMS6》讀書(shū)筆記(4)
《UNIX編程藝術(shù)》讀書(shū)筆記(4)
month-flow(5)
mysql入門(3)
垃圾收集(4)
我的博客
叫我abc
博客搬家啦
搜索
積分與排名
積分 - 306721
排名 - 84
最新評(píng)論
1.?re: C++ std::fstream open mode
i'am got
--hdj
2.?re: cppcheck的使用
你好,你會(huì)使用cppcheck嗎?@robert
--wqq
3.?re: 垃圾收集的那點(diǎn)事(H)
非常感謝
--7Qing_
4.?re: 高效調(diào)用lua函數(shù)
為什么提示沒(méi)有findLuaItem這個(gè)函數(shù)?
--sdfasf
5.?re: android ndk調(diào)試知識(shí)[未登錄](méi)
博主你好,請(qǐng)問(wèn)如果沒(méi)有.so的源代碼,應(yīng)該如何進(jìn)行arm的匯編級(jí)調(diào)試呢?
--dennis
閱讀排行榜
1.?cppcheck的使用(17097)
2.?十步精通新語(yǔ)言(10707)
3.?內(nèi)存池實(shí)現(xiàn)(9909)
4.?高效調(diào)用lua函數(shù)(9278)
5.?在lua腳本中使用unicode(8258)
使用MFC常規(guī)DLL
最近知道可以使用MFC常規(guī)DLL導(dǎo)出一些功能,交給其他程序使用,即使那個(gè)程序不是MFC程序。
嘗試的環(huán)境大概是這樣的,MFC常規(guī)DLL,以及普通的控制臺(tái)程序。
MFC常規(guī)DLL的一個(gè)導(dǎo)出函數(shù)
1
__declspec( dllexport )
void
create_frm2()
2
{
3
CFileDialog dlg( TRUE );
4
dlg.DoModal();
5
}
調(diào)用導(dǎo)出函數(shù)的應(yīng)用程序
1
int
_tmain(
int
argc, _TCHAR
*
argv[])
2
{
3
create_frm2();
4
5
return
0
;
6
}
不過(guò)在嘗試的過(guò)程中,出了點(diǎn)問(wèn)題,在調(diào)用導(dǎo)出函數(shù)的時(shí)候不是崩潰就是大量的DEBUG ASSERT,看起來(lái)卡在CFileDialog的構(gòu)造函數(shù)上了。
請(qǐng)教同事,才知道大概緣由。
在MFC常規(guī)DLL自帶的DllMain函數(shù)中,有這么一些細(xì)節(jié),在下面的中文注釋中標(biāo)注
1
extern
"
C
"
2
BOOL WINAPI InternalDllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID
/**/
/*
lpReserved
*/
)
3
{
4
if
(dwReason
==
DLL_PROCESS_ATTACH)
5
{
6
7
8
_AFX_THREAD_STATE
*
pState
=
AfxGetThreadState();
9
//
下面這句,保存了前一個(gè)模塊的module state。
10
//
但是如果前一個(gè)模塊是非MFC程序,那么pPrevModState=0
11
AFX_MODULE_STATE
*
pPrevModState
=
pState
->
m_pPrevModuleState;
12
13
14
15
//
initialize the single instance DLL
16
CWinApp
*
pApp; pApp
=
AfxGetApp();
17
if
(pApp
!=
NULL
&&
!
pApp
->
InitInstance())
18
{
19
pApp
->
ExitInstance();
20
AfxWinTerm();
21
goto
Cleanup;
//
Init Failed
22
}
23
24
25
26
bResult
=
TRUE;
27
28
Cleanup:
29
pState
->
m_pPrevModuleState
=
pPrevModState;
30
#ifdef _AFXDLL
31
//
restore previously-saved module state
32
//
這里,在退出DllMain前,將module state的指針設(shè)置為0
33
//
以后AfxGetModuleState的值就是0了
34
//
這樣的情況下,MFC的很多方法和類根本無(wú)法使用
35
VERIFY(AfxSetModuleState(AfxGetThreadState()
->
m_pPrevModuleState)
==
36
&
afxModuleState);
37
DEBUG_ONLY(AfxGetThreadState()
->
m_pPrevModuleState
=
NULL);
38
#endif
39
return
bResult;
40
}
41
42
43
44
return
TRUE;
45
}
由于我的調(diào)用程序不是MFC程序,所以MFC常規(guī)DLL中保存的module state值為0,當(dāng)構(gòu)造CFileDialog時(shí),相關(guān)的地方就失敗了。
知道原因,就知道解決方法了。
1.注意到DllMain恢復(fù)前一個(gè)module state的代碼,是寫(xiě)在 #ifdef _AFXDLL里面的。也就是說(shuō),取消_AFXDLL的宏定義,module state的值就應(yīng)該是有效的。
我將MFC常規(guī)DLL的編譯選項(xiàng)Use Of MFC 改為 Use MFC In a Static Library后重新編譯,執(zhí)行正常。
2.第二個(gè)方法就是想辦法設(shè)置一個(gè)module state,比如可以用MFC常規(guī)DLL中的那個(gè)module state
1
BOOL Capp3App::InitInstance()
2
{
3
CWinApp::InitInstance();
4
5
//
在MFC DLL中保存module state
6
g_ms
=
AfxGetModuleState();
7
8
return
TRUE;
9
}
10
11
12
__declspec( dllexport )
void
create_frm2()
13
{
14
//
剛進(jìn)來(lái),這時(shí)候module state = 0
15
//
將它設(shè)置為一個(gè)有效值
16
AfxSetModuleState( g_ms );
17
18
CFileDialog dlg( TRUE );
19
dlg.DoModal();
20
}
3.第三個(gè)方法就是,把調(diào)用程序換成MFC程序,不過(guò)我不是很喜歡這樣
posted on 2008-05-19 22:06
LOGOS
閱讀(2844)
評(píng)論(1)
編輯
收藏
引用
FeedBack:
#
re: 使用MFC常規(guī)DLL
2008-05-21 20:07
編程的夜貓
好啊,學(xué)習(xí)了。以后會(huì)注意的,感謝樓主
回復(fù)
更多評(píng)論
刷新評(píng)論列表
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問(wèn)
Chat2DB
管理
Copyright ©2025 LOGOS Powered by:
博客園
模板提供:
滬江博客
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
香蕉乱码成人久久天堂爱免费
|
欧美激情女人20p
|
国产一区二区三区丝袜
|
欧美在线一区二区
|
欧美二区乱c少妇
|
亚洲美女电影在线
|
国产精品三级久久久久久电影
|
亚洲欧美激情视频
|
免费久久99精品国产自
|
亚洲精品免费观看
|
国产精品国产自产拍高清av
|
欧美在线视频在线播放完整版免费观看
|
亚洲每日更新
|
久久www免费人成看片高清
|
影音先锋久久精品
|
欧美日韩午夜精品
|
久久精品女人天堂
|
亚洲毛片一区二区
|
久久婷婷影院
|
亚洲最新中文字幕
|
国产一区清纯
|
欧美啪啪成人vr
|
欧美在线免费观看亚洲
|
亚洲精品黄色
|
久久久久久综合网天天
|
亚洲乱码国产乱码精品精可以看
|
国内外成人免费激情在线视频
|
欧美成年人视频网站
|
亚洲午夜精品一区二区三区他趣
|
欧美电影免费观看
|
欧美一区二区三区久久精品茉莉花
|
一区二区视频在线观看
|
国产精品久久久
|
欧美大尺度在线
|
小黄鸭精品密入口导航
|
亚洲免费播放
|
欧美黄色免费
|
久久婷婷国产综合国色天香
|
一区二区黄色
|
亚洲国产天堂久久综合
|
国产亚洲福利
|
国产精品videosex极品
|
欧美aⅴ一区二区三区视频
|
欧美一区二区大片
|
国产精品99久久不卡二区
|
欧美激情区在线播放
|
久久久欧美精品sm网站
|
亚洲免费中文
|
亚洲视频一区在线
|
亚洲区欧美区
|
在线欧美福利
|
又紧又大又爽精品一区二区
|
国产区精品视频
|
欧美天天在线
|
欧美日韩一区二区三区免费看
|
欧美 日韩 国产精品免费观看
|
久久精品成人欧美大片古装
|
亚洲一区二区网站
|
一区二区三区久久
|
日韩午夜视频在线观看
|
亚洲人成网站在线观看播放
|
欧美国产日韩一二三区
|
免费成人在线观看视频
|
裸体女人亚洲精品一区
|
久久噜噜亚洲综合
|
久久人人爽人人爽
|
久久人人九九
|
免费看av成人
|
欧美大片在线观看一区
|
欧美高清免费
|
亚洲福利小视频
|
亚洲二区视频在线
|
亚洲激情在线观看视频免费
|
亚洲第一区中文99精品
|
亚洲国产精品久久
|
亚洲国产婷婷香蕉久久久久久99
|
欧美黑人一区二区三区
|
亚洲国产岛国毛片在线
|
最新国产成人在线观看
|
亚洲美女av黄
|
在线一区二区三区四区五区
|
亚洲综合第一
|
欧美在线观看网站
|
久久综合一区二区
|
欧美搞黄网站
|
欧美日韩在线播
|
国产精品一区在线播放
|
黄色一区二区三区
|
亚洲国产欧美在线
|
一本久久a久久免费精品不卡
|
亚洲一区三区视频在线观看
|
欧美一区国产一区
|
久久综合久久综合久久综合
|
亚洲电影在线播放
|
99国产精品私拍
|
性欧美8khd高清极品
|
久久亚洲精选
|
欧美视频在线观看 亚洲欧
|
国产日韩欧美视频
|
亚洲国产一区在线
|
亚洲欧美成人
|
免费观看日韩
|
av成人动漫
|
久久精品在这里
|
欧美欧美在线
|
国内精品一区二区
|
夜夜嗨av色综合久久久综合网
|
午夜精品久久久久久久久
|
久久性色av
|
一本色道久久加勒比精品
|
久久se精品一区二区
|
欧美精品一区二区三区一线天视频
|
国产精品二区二区三区
|
亚洲二区精品
|
欧美一区成人
|
亚洲国产毛片完整版
|
亚洲欧美网站
|
欧美精品一区在线播放
|
国产一区二区三区av电影
|
一本色道久久综合亚洲精品按摩
|
国产精品日日摸夜夜添夜夜av
|
在线国产亚洲欧美
|
午夜精品久久久久久久久久久久久
|
欧美/亚洲一区
|
亚洲专区欧美专区
|
欧美激情影音先锋
|
国内外成人在线
|
亚洲欧美视频一区
|
亚洲国产精品ⅴa在线观看
|
欧美www在线
|
亚洲综合国产
|
欧美看片网站
|
亚洲国产精品va在线看黑人
|
麻豆精品视频在线
|
亚洲无线一线二线三线区别av
|
蜜桃av一区二区三区
|
狠狠综合久久av一区二区小说
|
亚洲专区免费
|
亚洲精品国精品久久99热
|
久久久夜夜夜
|
国产一区99
|
欧美怡红院视频
|
亚洲午夜精品一区二区
|
欧美日韩成人在线观看
|
亚洲精品偷拍
|
欧美福利视频在线
|
久久在线观看视频
|
狠狠色丁香久久婷婷综合丁香
|
欧美一区二区三区在线观看视频
|
99精品欧美一区二区三区
|
欧美激情一区二区三区全黄
|
亚洲国产日韩美
|
欧美xx69
|
欧美1区视频
|
亚洲日本欧美
|
亚洲国产欧美一区二区三区久久
|
欧美激情精品久久久久久久变态
|
亚洲激情偷拍
|
欧美岛国激情
|
免费亚洲一区
|
亚洲精品一二区
|
最新亚洲电影
|
欧美日韩国产黄
|
亚洲神马久久
|
亚洲一区二区精品
|
国产精品久久久久久久一区探花
|
亚洲综合丁香
|
亚洲欧美日产图
|
国产主播一区二区三区四区
|
久久久久久亚洲精品杨幂换脸
|
久久国产精品久久久
|
黄色免费成人
|
欧美福利一区
|
欧美精品在线免费观看
|
国产精品99久久久久久宅男
|
欧美福利电影网
|
99v久久综合狠狠综合久久
|
亚洲激情视频在线观看
|
欧美日韩亚洲国产精品
|
亚洲欧美日韩一区在线
|
先锋影音国产精品
|
一色屋精品亚洲香蕉网站
|
亚洲成人在线网
|
欧美日本网站
|
欧美一区综合
|
免费观看欧美在线视频的网站
|
亚洲伦理自拍
|
亚洲影视综合
|
在线观看亚洲a
|
亚洲精品四区
|
国产日韩专区
|
亚洲丰满在线
|
国产精品久久久久免费a∨大胸
|
亚洲欧美色一区
|
在线精品视频一区二区三四
|
亚洲人成免费
|
国产偷久久久精品专区
|
亚洲国产精品毛片
|
国产精品综合av一区二区国产馆
|
麻豆久久婷婷
|