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

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.¢% 閱讀(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拷到不同的地方,運行了兩個實例,它們能夠“數據共享”

加上下面兩個功能:
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>
            99riav久久精品riav| 国产日韩专区在线| 久久亚洲私人国产精品va| 欧美国产日韩一区二区三区| 久久国产精品99久久久久久老狼| 欧美高清视频一区二区三区在线观看| 久久黄色级2电影| 欧美日韩在线播放一区| 欧美顶级大胆免费视频| 国产真实乱子伦精品视频| 一区二区三区高清不卡| 9l视频自拍蝌蚪9l视频成人| 欧美不卡高清| 欧美黄色小视频| 亚洲高清在线视频| 久久美女性网| 免费欧美视频| 在线国产日韩| 久热精品视频在线观看| 牛夜精品久久久久久久99黑人| 国产一在线精品一区在线观看| 亚洲欧美激情视频| 欧美一级在线播放| 国产精品天天看| 午夜久久久久久| 久久se精品一区精品二区| 国产欧美短视频| 性欧美暴力猛交另类hd| 久久亚洲二区| 亚洲国产精品成人精品| 欧美激情第3页| 99精品热6080yy久久| 午夜精品久久久久| 国产香蕉久久精品综合网| 欧美一区二区日韩一区二区| 久久网站免费| 亚洲国产经典视频| 欧美女人交a| 一本久久青青| 久久久久久穴| 亚洲人成网站777色婷婷| 欧美人与禽猛交乱配| 亚洲无人区一区| 久久理论片午夜琪琪电影网| 悠悠资源网久久精品| 欧美精品aa| 亚洲欧美精品中文字幕在线| 噜噜爱69成人精品| 9人人澡人人爽人人精品| 国产精品视频一二| 久久综合狠狠综合久久综青草| 亚洲人成在线播放网站岛国| 宅男噜噜噜66一区二区| 国产欧美一级| 欧美激情影音先锋| 亚洲一二三区在线| 欧美gay视频| 亚洲一区二区三区欧美| 国产夜色精品一区二区av| 欧美成人免费大片| 亚洲欧美另类久久久精品2019| 欧美成年人在线观看| 亚洲特级片在线| 一区免费在线| 国产精品久久久久久久免费软件 | 久久久青草青青国产亚洲免观| 欧美成人中文| 欧美自拍丝袜亚洲| 亚洲黄色在线观看| 国产欧美精品一区| 欧美.com| 欧美一区亚洲| 一本久久综合亚洲鲁鲁| 欧美成人国产一区二区| 欧美一区二区三区免费看| 亚洲免费观看高清完整版在线观看熊 | 久久久久久久一区二区| 99国产精品99久久久久久| 久久综合中文| 欧美一区二区三区免费观看| 亚洲精品日产精品乱码不卡| 狠狠干综合网| 国产久一道中文一区| 欧美日本高清视频| 欧美成人精品三级在线观看| 欧美一区二区日韩| 亚洲免费一区二区| av成人免费观看| 欧美激情二区三区| 噜噜噜久久亚洲精品国产品小说| 欧美一区二区视频在线观看| 亚洲天堂久久| 一区二区三区欧美| 亚洲日本欧美天堂| 亚洲区第一页| 亚洲精品激情| 亚洲精品社区| 最近中文字幕日韩精品| 在线免费观看视频一区| 激情成人综合| 国产亚洲精品v| 国产主播在线一区| 国产亚洲欧美日韩一区二区| 国产精品男人爽免费视频1| 国产精品www| 老司机精品视频网站| 亚洲精品一区二区三区在线观看 | 欧美在线网址| 亚洲一区二区三| 在线亚洲欧美| 亚洲一区精品在线| 亚洲欧美日韩高清| 午夜欧美大片免费观看| 欧美一二三区精品| 午夜亚洲影视| 久久国产夜色精品鲁鲁99| 久久国产精品久久久| 久久九九精品99国产精品| 亚洲综合日韩在线| 久久成人免费视频| 久久久综合网站| 欧美a级理论片| 欧美连裤袜在线视频| 欧美日韩中文字幕在线视频| 久久综合精品一区| 亚洲自拍16p| 亚洲女同性videos| 欧美一区二区三区免费大片| 久久精品国产久精国产思思| 玖玖玖国产精品| 欧美美女bb生活片| 国产精品一二一区| 在线观看视频一区| 久久久久久电影| 久久精品免费观看| 亚洲风情亚aⅴ在线发布| 亚洲靠逼com| 亚洲自拍偷拍麻豆| 久久天堂精品| 亚洲国产影院| 亚洲已满18点击进入久久| 欧美中文字幕不卡| 欧美人成在线| 国产一区二区久久| 99精品国产高清一区二区 | 国产精品久久久久久久久| 国产日韩欧美一区二区| 亚洲日本一区二区| 亚洲国产精品一区制服丝袜| 久久久999| 欧美激情五月| 国产女人精品视频| 亚洲成人在线网站| 亚洲免费视频观看| 欧美成人免费va影院高清| 一区二区三区视频在线看| 久久影视精品| 国产精品视频免费观看| 亚洲国产日韩欧美在线动漫| 亚洲女人天堂av| 亚洲国产日韩欧美在线动漫| 午夜精品理论片| 欧美日韩国内| 亚洲国产欧美在线人成| 欧美在线精品一区| 亚洲精品久久久久| 老司机午夜免费精品视频| 国产欧美一区二区三区在线老狼| 亚洲裸体在线观看| 免费不卡视频| 欧美在线免费看| 国产精品久久久久久久久搜平片| 亚洲免费观看| 欧美成人午夜剧场免费观看| 久久久久免费视频| 欧美国产成人在线| 韩国欧美国产1区| 欧美一级视频免费在线观看| 99精品欧美一区二区三区| 欧美99久久| 亚洲国产欧美一区| 免费成人av资源网| 久久成人免费视频| 国产一区二区欧美日韩| 亚洲欧美资源在线| 亚洲色图在线视频| 欧美午夜不卡| 亚洲专区一二三| 一区二区三区国产精品| 欧美色综合天天久久综合精品| 亚洲精品婷婷| 亚洲黑丝在线| 欧美日韩成人一区| 亚洲图片欧洲图片日韩av| 亚洲毛片av| 国产精品久久久久久久久久久久 | 国产精品入口尤物| 西瓜成人精品人成网站| 亚洲制服丝袜在线| 国产午夜精品久久|