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

S.l.e!ep.¢%

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

DLL共享變量

Posted on 2010-02-17 21:42 S.l.e!ep.¢% 閱讀(660) 評論(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拷到不同的地方,運行了兩個實例,它們能夠“數據共享”

加上下面兩個功能:
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");
}

就會發現,如果當所有EXE的實例都把 DLL 卸裝再 Load 時,DLL的數據會清0.......

所以,為了“共享數據”,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>
            亚洲国产日韩欧美在线99 | 欧美极品影院| 欧美在线视频一区二区| 亚洲性图久久| 亚洲男人的天堂在线观看| 亚洲一区免费在线观看| 午夜精品久久久久久久99樱桃| 亚洲欧洲av一区二区| 亚洲欧洲精品天堂一级| 亚洲激情网站免费观看| 国产精品99久久久久久www| 亚洲影院色无极综合| 性欧美暴力猛交另类hd| 免费成人高清| 一本色道**综合亚洲精品蜜桃冫| 亚洲欧美综合一区| 欧美激情中文字幕一区二区| 国产精品网站在线观看| 在线观看成人av电影| 亚洲午夜久久久久久久久电影院| 久久av一区二区三区| 欧美高清视频一区二区| 亚洲性夜色噜噜噜7777| 欧美www视频| 午夜在线不卡| 久久一区亚洲| 国产精品女人网站| 亚洲国产精品va在线看黑人动漫| 一本久久青青| 久久综合九色综合欧美就去吻| 亚洲激情欧美| 久久精品在线视频| 国产精品theporn| 亚洲国产一区在线观看| 欧美专区第一页| 亚洲欧洲日韩综合二区| 久久久久看片| 欧美三级小说| 亚洲激情在线观看视频免费| 欧美一区二区三区啪啪| 亚洲国产一区在线| 久久精品最新地址| 国产精品午夜春色av| 一区二区电影免费在线观看| 欧美777四色影视在线| 亚洲欧美怡红院| 欧美视频一二三区| 亚洲美女av电影| 欧美韩日高清| 久久综合五月| 亚洲电影免费在线观看| 久久精品人人| 欧美一区激情| 国内不卡一区二区三区| 久久se精品一区二区| 亚洲中无吗在线| 国产精品一区二区视频| 亚洲一区免费| 在线午夜精品| 国产精品美女久久久浪潮软件 | 亚洲日本中文字幕| 欧美成人免费va影院高清| 久久国产一二区| 国产亚洲一区在线| 久久精品盗摄| 欧美一区二区三区日韩视频| 国产欧美一区二区三区久久人妖| 亚洲欧美日韩综合aⅴ视频| 亚洲日本成人| 欧美日韩亚洲激情| 午夜精品一区二区三区在线 | 欧美一区二区三区在线| 亚洲一区二区三区精品视频| 国产精品久久久久久亚洲调教| 亚洲女同性videos| 性久久久久久久久| 曰本成人黄色| 亚洲国产欧美日韩| 久久久久久有精品国产| 久久视频这里只有精品| 亚洲乱码精品一二三四区日韩在线 | 亚洲国产精品第一区二区| 免费成人小视频| 99国产精品久久久| 亚洲视频自拍偷拍| 国产在线播放一区二区三区| 欧美91大片| 中日韩在线视频| 亚洲第一主播视频| 欧美不卡一区| 亚洲欧美精品在线观看| 久久激情婷婷| 一区二区三区视频在线观看| 亚洲欧美国产另类| 亚洲国产精品小视频| 一区二区三区视频观看| 国产一区高清视频| 亚洲国产综合视频在线观看 | 黄色av一区| 亚洲欧洲综合另类| 国产精品一区久久久久| 欧美黄色网络| 国产乱码精品| 亚洲综合首页| 欧美国产精品v| 正在播放日韩| 久久精品中文字幕免费mv| 一区二区三区 在线观看视| 午夜精品美女自拍福到在线| 在线播放亚洲| 午夜视频久久久| 99精品视频一区| 久久视频国产精品免费视频在线| 亚洲视频中文| 美女视频黄 久久| 久久精品天堂| 国产精品―色哟哟| 91久久极品少妇xxxxⅹ软件| 国产欧美日韩亚洲一区二区三区 | 一本色道久久综合亚洲精品不卡 | 亚洲精品久久久久中文字幕欢迎你| 国产精品久久久久毛片软件| 欧美高清视频在线播放| 国产午夜亚洲精品理论片色戒| 亚洲精品免费一区二区三区| 在线观看91久久久久久| 欧美在线视频在线播放完整版免费观看 | 久久av一区二区三区亚洲| 亚洲一区二区三区在线播放| 麻豆av福利av久久av| 久久激情网站| 国产精品亚洲不卡a| 99精品视频免费| 亚洲日本中文字幕区| 久久嫩草精品久久久久| 久久综合国产精品台湾中文娱乐网| 国产精品系列在线播放| 亚洲视频网在线直播| 一本色道久久加勒比88综合| 快射av在线播放一区| 久久一区中文字幕| 国产一区清纯| 在线国产欧美| 欧美高清影院| 免费日韩av| 久久国产精品网站| 国产精品毛片| 亚洲永久免费av| 欧美一区二区三区久久精品| 欧美日韩中文字幕日韩欧美| 亚洲精品视频啊美女在线直播| 亚洲免费成人av电影| 欧美久久九九| 日韩一级二级三级| 亚洲在线视频观看| 国产精品色网| 欧美制服丝袜| 欧美高清视频一区二区三区在线观看 | 亚洲精品一区二区三| 日韩视频免费在线| 欧美日韩国语| 亚洲影院高清在线| 玖玖玖国产精品| 亚洲精品网址在线观看| 欧美日韩高清在线观看| 亚洲一区在线播放| 久久九九免费视频| 亚洲国产网站| 国产精品美女诱惑| 久久精品午夜| 亚洲激情在线视频| 午夜精品影院在线观看| 狠色狠色综合久久| 欧美日韩在线亚洲一区蜜芽| 午夜一区二区三视频在线观看| 免费观看在线综合| 亚洲午夜精品国产| 激情六月综合| 国产精品高潮呻吟视频| 久久午夜国产精品| 亚洲一区二区少妇| 亚洲国产日韩欧美| 久久九九久精品国产免费直播| 亚洲人成在线观看一区二区| 国产美女精品一区二区三区| 欧美成人免费大片| 欧美一区在线看| 99精品99| 欧美激情第8页| 久久不射中文字幕| 夜夜躁日日躁狠狠久久88av| 狠狠做深爱婷婷久久综合一区| 国产精品porn| 欧美极品色图| 久久一二三国产| 欧美中日韩免费视频| 亚洲免费婷婷| 亚洲午夜女主播在线直播| 日韩视频在线观看| 亚洲国产精品尤物yw在线观看|