• <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>
            posts - 72,  comments - 4,  trackbacks - 0
            由于想在游戲中(非mfc程序)調(diào)用一個(gè)dll用來監(jiān)控游戲中一些數(shù)據(jù)變化,而這些數(shù)據(jù)可以觸發(fā)式變動(dòng),所以想到用mfc來弄,
            但網(wǎng)上查的
            “非mfc程序調(diào)用mfc擴(kuò)展dll”似乎有點(diǎn)麻煩,也沒有什么成樣的例子。
            后來還是自己對(duì)比正常的mfc程序加載方式修改出來了,步驟如下:
            1.  
            exe工程要設(shè)置成Use Standard Windows Libraries或者Use MFC in a Shared DLL(因?yàn)槲覀儾挥胢fc,所以設(shè)置成前者)
            2. 
            dll工程用vc向?qū)?chuàng)建mfc擴(kuò)展dll
            3. 在dll工程中拷貝相關(guān)的app,mainfrm和view以及doc框架(可以用vc向?qū)?chuàng)建一個(gè)正常mfc框架程序用來拷貝)
            然后在dllmain的attach中加入如下語句即可:
            //----------------------------------------
            // AFX internal initialization
            if (!AfxWinInit(hInstance, 0, "", 1))
            return 0;
            // Register the doc templates we provide to the app
            CWinApp* pApp = AfxGetApp();
            ENSURE(pApp != NULL);
            pApp->InitApplication();
            pApp->InitInstance();
            //----------------------------------------
            4. 如果是隱式調(diào)用的話,在exe中加入:
            #define AFX_EXT_API  __declspec(dllexport)
            #include "..\mfcdll\mfcdll.h"  // 這個(gè)是dll要導(dǎo)出的東西
            這樣就可以了

            5.顯式調(diào)用的話,用LoadLibrary先裝載,再獲取對(duì)應(yīng)導(dǎo)出函數(shù)調(diào)用就應(yīng)該也可以了(這個(gè)沒試)

            6.上述處理后只能顯示,但按鍵接收還不行,因?yàn)橄⒀h(huán)沒有地方調(diào)用。。。它原來是系統(tǒng)調(diào)用app->run(),在其中循環(huán)處理的。
            如果直接在dll中調(diào)用app的run()的話,mainfrm的PreTranslateMessage就能收到按鍵消息了。但這樣由于是主線程中調(diào)用app->run(),而run()中
            是消息死循環(huán),所會(huì)exe會(huì)沒機(jī)會(huì)響應(yīng)。。。所以解決辦法是模擬app->run()寫一個(gè)runoneframe()函數(shù),然后每次刷新一下(或者創(chuàng)建新線程來刷新, 臨時(shí)試了一下會(huì)crash,我沒用這種辦法,先不查了,不過理論上應(yīng)該可以的)
            這樣就ok了(view中按鍵自己再處理吧,這里不提了)
            posted on 2012-09-14 15:56 flipcode 閱讀(1349) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            久久播电影网| 久久久久国产一级毛片高清板| 亚洲国产精品无码久久久久久曰| 国产午夜精品久久久久九九| 亚洲国产精品成人久久蜜臀| 久久人妻少妇嫩草AV无码专区| 伊人久久免费视频| 一本久道久久综合狠狠躁AV| 国产精品久久精品| 久久久久久精品成人免费图片| 久久综合久久久| 久久亚洲精品成人无码网站| 91久久精品电影| 国产精品久久波多野结衣| 亚洲精品久久久www| 国产精品久久久久久久久久免费| 欧洲精品久久久av无码电影| 综合久久给合久久狠狠狠97色| 国产国产成人久久精品| 欧美噜噜久久久XXX| 伊人久久大香线蕉成人| 国产精品热久久无码av| 久久综合九色综合欧美狠狠| 久久99国产综合精品| 久久人妻AV中文字幕| 免费一级欧美大片久久网| 色综合久久综合网观看| 国产麻豆精品久久一二三| 久久棈精品久久久久久噜噜| 久久久久国产精品嫩草影院| 亚洲国产成人久久精品99| 久久精品中文字幕有码| 99久久精品无码一区二区毛片 | 久久久久亚洲爆乳少妇无| 久久精品视频网| 国产精品久久网| 色综合久久最新中文字幕| 日韩精品久久久久久| 品成人欧美大片久久国产欧美| 久久伊人精品青青草原高清| 91精品国产综合久久香蕉|