青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運(yùn)轉(zhuǎn),開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

DLL共享變量

Posted on 2010-02-17 21:42 S.l.e!ep.¢% 閱讀(661) 評論(0)  編輯 收藏 引用 所屬分類: VC

// ?The?following?ifdef?block?is?the?standard?way?of?creating?macros?which?make?exporting?
// ?from?a?DLL?simpler.?All?files?within?this?DLL?are?compiled?with?the?TESTDLL_EXPORTS
// ?symbol?defined?on?the?command?line.?this?symbol?should?not?be?defined?on?any?project
// ?that?uses?this?DLL.?This?way?any?other?project?whose?source?files?include?this?file?see?
// ?TESTDLL_API?functions?as?being?imported?from?a?DLL,?wheras?this?DLL?sees?symbols
// ?defined?with?this?macro?as?being?exported.
#ifdef?TESTDLL_EXPORTS
#define ?TESTDLL_API?__declspec(dllexport)
#else
#define ?TESTDLL_API?__declspec(dllimport)
#endif

#pragma?data_seg?(
" .shared " )
int ?g_TestValue? = ? 0 ;
#pragma?data_seg?()

#pragma?comment(linker,?
" /SECTION:.shared,RWS " )?


TESTDLL_API?
int ?getTestValue( void );
TESTDLL_API?
void ?setTestValue( int ?nValue);



// ?testDLL.cpp?:?Defines?the?entry?point?for?the?DLL?application.
//

#include?
" stdafx.h "
#include?
" testDLL.h "

BOOL?APIENTRY?DllMain(?HANDLE?hModule,?
???????????????????????DWORD??ul_reason_for_call,?
???????????????????????LPVOID?lpReserved
?????????????????????)
{
????
switch ?(ul_reason_for_call)
????{
????????
case ?DLL_PROCESS_ATTACH:
????????
case ?DLL_THREAD_ATTACH:
????????
case ?DLL_THREAD_DETACH:
????????
case ?DLL_PROCESS_DETACH:
????????????
break ;
????}
????
return ?TRUE;
}

// ?This?is?an?example?of?an?exported?function.
TESTDLL_API? int ?getTestValue( void )
{
????
return ?g_TestValue;
}

TESTDLL_API?
void ?setTestValue( int ?nValue)
{
????g_TestValue?
= ?nValue;
}


EXPORTS
????getTestValue?@
1
????setTestValue?@
2


接下來,實踐證明一下
BOOL?CTestCallDLLDlg::OnInitDialog()
{
????CDialog::OnInitDialog();

????????
//?
????
????
//?TODO:?Add?extra?initialization?here

????m_hModule?
=?::LoadLibrary("C:\\Documents?and?Settings\\Administrator\\桌面\\testDLL.dll");

????
????
return?TRUE;??//?return?TRUE??unless?you?set?the?focus?to?a?control
}

void?CTestCallDLLDlg::OnButton1()?
{
????typedef?
int?(*getTestValueType)(void);
????getTestValueType?pfngetTestValue?
=?(getTestValueType)::GetProcAddress(m_hModule,?"getTestValue");

????
int?i?=?pfngetTestValue();

????CString?str;
????str.Format(
"The?Value?now?is?%d",?i);
????AfxMessageBox(str);
}

void?CTestCallDLLDlg::OnButton2()?
{
????typedef?
int?(*getTestValueType)(void);
????getTestValueType?pfngetTestValue?
=?(getTestValueType)::GetProcAddress(m_hModule,?"getTestValue");

????typedef?
void?(*setTestValueType)(int?nValue);
????setTestValueType?pfnsetTestValue?
=?(setTestValueType)::GetProcAddress(m_hModule,?"setTestValue");

????
int?i?=?pfngetTestValue()?+?1;
????pfnsetTestValue(i);
????i?
=?pfngetTestValue();

????CString?str;
????str.Format(
"The?Value?now?is?%d",?i);
????AfxMessageBox(str);????
}

奇跡般地,兩個EXE拷到不同的地方,運(yùn)行了兩個實例,它們能夠“數(shù)據(jù)共享”

加上下面兩個功能:
void?CTestCallDLLDlg::OnButton3()?
{
????::FreeLibrary(m_hModule);
????m_hModule?
=?NULL;
}

void?CTestCallDLLDlg::OnButton4()?
{
????
//?TODO:?Add?your?control?notification?handler?code?here
????m_hModule?=?::LoadLibrary("C:\\Documents?and?Settings\\Administrator\\桌面\\testDLL.dll");
}

就會發(fā)現(xiàn),如果當(dāng)所有EXE的實例都把 DLL 卸裝再 Load 時,DLL的數(shù)據(jù)會清0.......

所以,為了“共享數(shù)據(jù)”,DLL必須至少有一個“引用(被某個EXE引用)”
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧美变态国产另类| 欧美国产亚洲精品久久久8v| 亚洲视频在线一区观看| 午夜精品久久久久久99热软件| 欧美亚洲视频| 欧美国产欧美亚洲国产日韩mv天天看完整| 久久亚洲综合色一区二区三区| 久久久午夜精品| 99精品久久久| 久久人91精品久久久久久不卡 | 午夜天堂精品久久久久| 看片网站欧美日韩| 亚洲图片欧洲图片日韩av| 欧美视频1区| 亚洲精品久久久久久下一站| 性视频1819p久久| 亚洲精品影院| 欧美成人午夜影院| 狠狠色综合网| 久久国产视频网| 亚洲天堂网在线观看| 国产欧美精品日韩精品| 亚洲一区欧美| 日韩午夜免费| 欧美精品久久99久久在免费线| 一区在线免费| 久久男人av资源网站| 欧美11—12娇小xxxx| 一色屋精品视频在线看| 久久成人免费视频| 性一交一乱一区二区洋洋av| 国产精品激情av在线播放| 一本色道久久综合亚洲精品按摩 | 亚洲美女中文字幕| 国产精品美女久久| 午夜精品久久久久久久99樱桃 | 另类专区欧美制服同性| 欧美色网一区二区| 久久久久国产精品一区| 欧美在线视频观看| 国产日韩亚洲| 久久久999精品| 欧美美女bbbb| 亚洲欧美日本精品| 老司机精品导航| 久久成人综合视频| 欧美日韩国产免费| 亚洲专区一二三| 麻豆精品一区二区综合av| 亚洲欧美国产高清| 欧美黄污视频| 卡通动漫国产精品| 国产欧美一区二区三区在线老狼| 亚洲人成精品久久久久| 久久精品夜色噜噜亚洲a∨ | 亚洲香蕉在线观看| 99精品国产在热久久下载| 亚洲精一区二区三区| 一区久久精品| 久久精品国产亚洲aⅴ| 亚洲成色www久久网站| 亚洲国产精品女人久久久| 欧美日韩免费高清一区色橹橹| 亚洲欧美成人综合| 欧美色视频在线| 亚洲国产精品高清久久久| 在线观看三级视频欧美| 欧美在线free| 久久激情婷婷| 国产一区二区三区在线观看免费视频 | 亚洲一区免费视频| 欧美激情二区三区| 亚洲高清资源| 国产精品亚洲产品| 亚洲国产成人在线视频| 在线观看视频一区二区欧美日韩| 欧美在线观看日本一区| 久久激情网站| 国内精品国产成人| 一区二区日韩欧美| 亚洲国产日韩在线一区模特| 一级成人国产| 香蕉av福利精品导航| 国产精品网站在线观看| 亚洲欧美日韩在线一区| 欧美中文字幕在线观看| 国外视频精品毛片| 久久亚洲视频| 亚洲美女视频网| 性娇小13――14欧美| 国产一级揄自揄精品视频| 久久久久久成人| 校园激情久久| 狠狠久久五月精品中文字幕| 久久国产精品毛片| 亚洲国产人成综合网站| 在线一区二区日韩| 欧美黄色日本| 亚洲免费在线电影| 亚洲亚洲精品三区日韩精品在线视频| 久久久久九九九九| 亚洲麻豆一区| 久久精品网址| 日韩亚洲欧美一区| 国产精品女人网站| 浪潮色综合久久天堂| 一本色道久久88精品综合| 久久激情久久| 一区二区三区色| 一区二区三区中文在线观看| 欧美理论在线播放| 久久噜噜噜精品国产亚洲综合| 亚洲精品久久久久久久久| 久久国产一区二区| 日韩网站在线看片你懂的| 国产精品青草久久| 欧美成人精品不卡视频在线观看| 亚洲一级黄色| 亚洲精品乱码久久久久| 久久裸体艺术| 亚洲欧美日本伦理| 日韩视频一区二区三区| 欧美日韩另类国产亚洲欧美一级| 午夜精品福利在线| 日韩一本二本av| 亚洲国产欧美一区| 巨乳诱惑日韩免费av| 欧美一级在线播放| 国产日韩欧美在线看| 欧美日韩在线一区| 老司机亚洲精品| 欧美在线观看一区二区| 在线亚洲欧美专区二区| 久久精品国产第一区二区三区| 一区二区三区久久网| 亚洲激情自拍| 伊人精品视频| 好吊成人免视频| 国产三级精品在线不卡| 国产精品国产三级国产aⅴ9色| 欧美激情一级片一区二区| 久热精品视频在线观看一区| 久久国产精品一区二区三区| 亚洲自拍另类| 午夜精品国产精品大乳美女| 亚洲视频一区二区免费在线观看| 日韩手机在线导航| 99re6这里只有精品视频在线观看| 亚洲电影在线| 亚洲精品免费一区二区三区| 亚洲国产精品成人| 亚洲人成精品久久久久| 亚洲国产一二三| 亚洲欧洲久久| 麻豆九一精品爱看视频在线观看免费| 午夜精品在线观看| 香蕉免费一区二区三区在线观看 | 久久亚洲精品视频| 久久中文精品| 欧美国产日韩一区| 欧美一区二区三区日韩视频| 午夜精品视频在线观看| 欧美亚洲免费高清在线观看| 久久国产直播| 欧美成年人网站| 久久免费视频这里只有精品| 久久综合网色—综合色88| 免费短视频成人日韩| 欧美制服第一页| 久久婷婷蜜乳一本欲蜜臀| 欧美成人a视频| 亚洲精选视频免费看| 国产精品99久久久久久久女警| 亚洲综合精品四区| 久久er精品视频| 欧美1区免费| 国产精品国产三级国产| 国产亚洲精品久久久久婷婷瑜伽| 伊人伊人伊人久久| 亚洲免费久久| 久久精品视频一| 亚洲日本成人网| 亚洲欧美国产不卡| 免费人成网站在线观看欧美高清| 欧美日韩国产小视频在线观看| 国产精品自在线| 国产日韩欧美视频在线| 亚洲电影自拍| 亚洲电影在线观看| 一本一本a久久| 久久久噜噜噜久久| 亚洲人成网站在线观看播放| 亚洲一级在线观看| 开元免费观看欧美电视剧网站| 国产精品国产成人国产三级| 激情伊人五月天久久综合| 中文日韩欧美| 性伦欧美刺激片在线观看| 欧美激情亚洲激情| 先锋亚洲精品|