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

 在進(jìn)行DLL開發(fā)過(guò)程中,尤其在進(jìn)行底層硬件開發(fā)過(guò)程中,比如實(shí)時(shí)接收數(shù)據(jù),進(jìn)程需要和應(yīng)用程序進(jìn)行交互,而DLL和應(yīng)用程序最好的交互就是發(fā)消息了,在DLL中定義消息的方式和在應(yīng)用程序中定義消息的方式非常相似。下面談?wù)勥@兩種定義的方法:

 

  一、在應(yīng)用程序自定義消息方法:

        一般自定義消息有一定的范圍,雖然說(shuō)自定義消息從WM_USER開始,但是由于我們的工程里面一般還有很多其他的控件,他們也要占用一部分WM_USER消息范圍,所以我們必須為他們留出一部分范圍,這里,我們保留100個(gè)消息,一般情況下,這可以滿足我們的要求。

  (1)    定義消息的值。在我們要發(fā)生消息的地方(例如CMyView.cpp的開始部分)或者stdafx..h文件,進(jìn)行如下定義:


#define WM_MSG  (WM_USER+101)

 

        接下來(lái)的工作其實(shí)很簡(jiǎn)單,我們?cè)谇懊嬲f(shuō)了,消息正常工作有3個(gè)部分必須協(xié)調(diào):消息聲明、消息映射、消息體。我們就一次進(jìn)行手工加入。

        (2)首先在AFX_MSG塊中加入消息聲明:在CMyView.h中,找到如下部分,并加入消息聲明:


         protected:       

            // {{AFX_MSG(CMyView)

            ......

            afx_msg LRESULT OnMyMsg(WPARAM wParam,LPARAM lParam);

            file://}}AFX_MSG

 

        (3)在MESSAGE_MAP塊中添加ON_MESSAGE宏指令:


           BEGIN_MESSAGE_MAP(CMyView, CView)

              file://{{AFX_MSG_MAP(CMyView)

               .....

              ON_MESSAGE(WM_MSG, OnMyMsg)

             file://}}AFX_MSG_MAP

           END_MESSAGE_MAP()

 

        (4)添加消息函數(shù)體:


      LPESULT CMyView::OnMyMsg(WPARAM wParam, LPARAM lParam)

          {

    


             AfxMessageBox("消息已經(jīng)收到!");

             return 0;

          }

 

        消息至此就已經(jīng)定義完畢,接下來(lái)我們就可以激活消息了,就可以用我們前面所說(shuō)的PostMessage/SendMessage來(lái)發(fā)送消息了。

    如:::PostMessage(hwnd,WM_MSG,0,1);

       PostMessage:不用等消息返回。

    SendMessage:需要等消息返回。

  二、從DLL中傳遞消息到EXE

   在DLL中定義消息和上面的方法很相似,有兩點(diǎn)不同的地方:

  1、  在DLL和應(yīng)用程序中兩個(gè)地方定義相同的消息。

  2、  應(yīng)用程序調(diào)用DLL程序之后,需要將應(yīng)用程序的窗口句柄傳遞給DLL,以便DLL中的消息返回。

  在DLL工程中:

  (1)       在stdafx.h頭文件中添加消息定義:


 #define WM_MSG WM_USER + 102

       

  (2)       添加啟動(dòng)消息的輸出函數(shù):


       CMessageDLLApp theApp;

  //發(fā)送消息

extern "C" _declspec(dllexport) void StartSendMessage(HWND hwnd)

{

                 theApp.SendMessage(hwnd);

}     

 

            其中hwnd是接收消息的窗口句柄。

  (3)       添加啟動(dòng)消息的實(shí)現(xiàn)函數(shù):

在頭文件中添加函數(shù)聲明:


  void SendMessage(HWND hwnd);

 

  在CPP文件中添加函數(shù)實(shí)現(xiàn)

  //啟動(dòng)發(fā)送消息


void CMessageDLLApp::SendMessage(HWND hwnd)

{

                   ::PostMessage(hwnd,WM_MSG,0,1);

}

  在應(yīng)

用程序中:

  (1)       在stdafx.h頭文件中添加消息定義:


#define WM_MSG WM_USER + 102

       

  (2)       首先在AFX_MSG塊中加入消息聲明:在CTestMessageDLLDlg.h中,找到如下部分,并加入消息聲明:

。。。。。。


        afx_msg LRESULT OnMyMsg(WPARAM wParam,LPARAM lParam);

                 DECLARE_MESSAGE_MAP()

 

  (3)       在MESSAGE_MAP塊中添加ON_MESSAGE宏指令:


        BEGIN_MESSAGE_MAP(CTestMessageDLLDlg, CDialog)

          。。。。。。

          ON_MESSAGE(WM_MSG, OnMyMsg)

          //}}AFX_MSG_MAP

          END_MESSAGE_MAP()

 

  (4)       添加消息函數(shù)體:


       LRESULT CTestMessageDLLDlg::OnMyMsg(WPARAM wParam, LPARAM lParam)

 {

                AfxMessageBox("消息已經(jīng)收到!");

                 return 0;

     }

?。?)       在對(duì)話框上添加一個(gè)按鈕,在按鈕事件中,先調(diào)用DLL文件,然后發(fā)送一個(gè)測(cè)試消息響應(yīng)的命令:


void CTestMessageDLLDlg::OnBnClickedButton1()

{

    // TODO: 在此添加控件通知處理程序代碼

    //定義函數(shù)

    typedef void (_cdecl*STARTSENDMESSAGE)(HWND hwnd);

    HMODULE hmessage = NULL;

    STARTSENDMESSAGE StartSendMessage = NULL;

  //導(dǎo)入DLL庫(kù)文件

    hmessage = LoadLibrary("MessageDLL.dll");

    if(hmessage==NULL)

    {

        FreeLibrary(hmessage);

        exit(0);

    }

  //導(dǎo)入DLL中測(cè)試消息函數(shù)

    StartSendMessage = (STARTSENDMESSAGE)GetProcAddress(hmessage,"StartSendMessage");

    if(StartSendMessage==NULL)

    {

        FreeLibrary(hmessage);

        exit(1);

    }

    //獲取對(duì)話框的窗口句柄

    HWND hwnd = this->GetSafeHwnd();

    //發(fā)送測(cè)試消息函數(shù)

    (*StartSendMessage)(hwnd);

}

 

運(yùn)行應(yīng)用程序,就可以看到測(cè)試結(jié)果了。
 









Posted on 2007-11-20 12:18 艾凡赫 閱讀(4392) 評(píng)論(0)  編輯 收藏 引用 所屬分類: MFC技術(shù) 、DLL 技術(shù)
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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视频日韩| 亚洲免费一区二区| 一区二区三区精品久久久| 欧美成人精品三级在线观看 | 亚洲一级免费视频| 亚洲色图制服丝袜| 韩日欧美一区二区三区| 男人的天堂亚洲在线| 欧美精品久久久久久久久久| 亚洲一区二区免费| 久久久91精品国产一区二区三区| 亚洲黄色高清| 亚洲综合国产精品| 亚洲国产精品成人一区二区| 日韩一区二区福利| 在线观看中文字幕不卡| 99在线热播精品免费| 国产在线拍偷自揄拍精品| 91久久久国产精品| 国产日韩欧美精品一区| 最新成人在线| 国产午夜精品全部视频播放 | 亚洲国产福利在线| 国产精品一区久久| 亚洲精品久久久一区二区三区| 国产精品自拍视频| 亚洲精品影视| 亚洲国产精品第一区二区| 亚洲午夜在线| 在线亚洲伦理| 欧美成人在线免费视频| 久久久久国产一区二区| 欧美午夜激情在线| 亚洲激情一区| 91久久嫩草影院一区二区| 午夜天堂精品久久久久| 日韩视频二区| 欧美mv日韩mv国产网站| 玖玖玖国产精品| 国产精品视频免费一区| av成人免费| 日韩视频中文| 欧美成黄导航| 亚洲激情六月丁香| 亚洲人午夜精品| 巨乳诱惑日韩免费av| 久久精品91久久香蕉加勒比| 国产精品久久久久天堂| 日韩视频精品在线观看| 亚洲精品偷拍| 欧美成人一区二区| 欧美黄色小视频| 亚洲国产高清一区二区三区| 久久精品国产综合| 久久九九免费视频| 国产在线乱码一区二区三区| 亚洲影院色在线观看免费| 亚洲影院一区| 国产精品午夜在线| 香蕉乱码成人久久天堂爱免费 | 亚洲美女在线国产| 欧美精品一区二区三区四区| 亚洲国产成人精品女人久久久 | 国产目拍亚洲精品99久久精品| 免费观看在线综合色| 国产视频在线观看一区| 性欧美暴力猛交69hd| 久久久久九九视频| 一区二区在线视频| 欧美黄色一区| av不卡在线观看| 欧美专区日韩视频| 揄拍成人国产精品视频| 免费观看亚洲视频大全| 亚洲精品乱码久久久久久蜜桃91| 99视频精品全部免费在线| 欧美日韩一区二区三区| 亚洲一区二区四区| 乱人伦精品视频在线观看| 亚洲欧洲中文日韩久久av乱码| 欧美激情亚洲一区| 亚洲欧美精品| 欧美黑人在线播放| 亚洲综合日韩在线| 伊人久久av导航| 欧美日产国产成人免费图片| 亚洲影视在线| 亚洲高清在线播放| 欧美一区二区高清在线观看| 亚洲第一在线视频| 国产精品久久久久aaaa九色| 久久精品日产第一区二区三区 | 欧美~级网站不卡| 亚洲视频精品在线| 精品粉嫩aⅴ一区二区三区四区| 欧美大片一区二区| 欧美一区二区在线| 日韩系列欧美系列| 美日韩精品视频免费看| 亚洲欧美国产日韩中文字幕| 在线观看欧美| 国产精品久久久久aaaa| 欧美高清视频在线观看| 午夜久久tv| 一区二区三区成人精品| 欧美v国产在线一区二区三区| 亚洲女性裸体视频| 亚洲精品一区二区三区不| 国产亚洲精品成人av久久ww| 欧美久久久久| 欧美 日韩 国产精品免费观看| 亚洲欧美另类国产| 一区二区免费在线观看| 欧美激情亚洲国产| 开元免费观看欧美电视剧网站| 亚洲专区在线| 亚洲午夜精品久久| 一本久道久久综合中文字幕| 伊人成人网在线看| 狠狠久久综合婷婷不卡| 国产美女在线精品免费观看| 欧美日韩亚洲一区二区三区在线观看| 久久久精品性| 久久久精品国产免费观看同学| 午夜精品一区二区三区四区| 久久精品论坛| 亚洲欧美bt| 一区二区三区日韩精品视频| 亚洲二区视频| 亚洲国产精品va在线观看黑人| 国产中文一区二区| 激情欧美丁香| 亚洲福利视频三区| 亚洲春色另类小说| 欧美视频中文在线看| 亚洲美洲欧洲综合国产一区| 欧美激情欧美狂野欧美精品| 免费在线视频一区| 欧美大片在线看免费观看| 久久野战av| 欧美福利网址| 亚洲精品一级| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 亚洲国产婷婷香蕉久久久久久99 | 欧美日韩国产成人在线免费| 欧美精品日韩综合在线| 欧美—级a级欧美特级ar全黄| 欧美精品日韩一区| 国产精品卡一卡二| 国内精品**久久毛片app| 国语自产精品视频在线看8查询8| 狠狠88综合久久久久综合网| 伊伊综合在线| 亚洲裸体俱乐部裸体舞表演av| 一区二区免费在线视频| 亚洲欧美成人| 久久尤物视频| 亚洲国产精品一区二区第四页av | 亚洲国产成人91精品| 一区二区三区av| 久久精品国亚洲| 欧美精品在线一区二区| 国产精品亚洲综合| 1204国产成人精品视频| 一本大道久久a久久综合婷婷| 午夜精彩国产免费不卡不顿大片| 久久久精彩视频| 亚洲激情在线观看| 亚洲欧美日产图| 欧美成人免费小视频| 国产精品免费小视频| 黄色成人在线免费| 亚洲视频一区在线| 久久综合伊人77777蜜臀| 亚洲伦理久久| 久久久久久亚洲精品杨幂换脸| 欧美激情一区二区久久久| 国产亚洲一区二区在线观看| 亚洲精选在线| 久久亚洲欧美国产精品乐播| 亚洲精品在线电影| 久久影院亚洲| 国产亚洲欧美另类一区二区三区| 亚洲免费观看| 欧美va亚洲va日韩∨a综合色| 亚洲视频在线免费观看| 欧美成人免费全部| 在线不卡中文字幕| 欧美在线观看天堂一区二区三区| 欧美激情免费观看| 久久久国产91| 国产日韩精品久久久| 亚洲一区二区三区高清不卡| 亚洲成人在线免费| 亚洲欧洲av一区二区| 亚洲国产精品悠悠久久琪琪 |