• <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>

            一路走來,只有C++和香煙最實在!

            Just Dive Into!

            C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
              11 Posts :: 0 Stories :: 29 Comments :: 0 Trackbacks
                 不知道現(xiàn)在還有沒有人在開發(fā)DLL,其實VS下面開發(fā)C++的DLL還是很方便的,而且Release的時候也很方便,只要把模塊的只能劃分清楚,封裝好不同的DLL工程,在一個主工程里面引用這些不同的DLL工程還是很不錯的,這樣發(fā)布的時候有一個主工程的EXE 和不同的DLL就可以了,不論是調(diào)試還是Release都比較簡單,下面就簡單說說開發(fā)的過程。
                   首先要有一個解決方案,我想這個怎么搞就不用我在這里廢話了哦,生成一個項目作為界面,同時這個項目也是主項目。在該解決方案下面添加實現(xiàn)不同功能的各種項目,這些項目在向?qū)е羞x擇的時候選擇為win32 項目,在為win32項目的應(yīng)用程序設(shè)置中選擇DLL就可以建立一個DLL工程了,在DLL工程中添加自己寫的頭文件和CPP文件,這樣就建立了一個DLL不過現(xiàn)在還沒有導(dǎo)出DLL。
                 要生成一個DLL還必須添加導(dǎo)出函數(shù)的宏, __declspec(dllexport)和__declspec(dllimport) 這里有一個小的技巧,就是利用工程的預(yù)編譯宏來設(shè)置如果有一個工程名為Test,在要導(dǎo)出的類前面加上如下的代碼
            1#ifdef TEST_EXPORTS
            2#define TEST_API  __declspec(dllexport)
            3#else
            4#define TEST_API __declspec(dllimport)
            5#endif
            如果要導(dǎo)出的類名為class exportA;則可以在頭文件中類的聲明可以這樣寫class TEST_API exportA結(jié)可以把整個類導(dǎo)出了,在主工程中引用導(dǎo)出類exportA 只要包含該頭文件就可以了,為什么會這樣這是因為使用了上面的預(yù)編譯頭的緣故哦,在DLL工程中存在TEST_EXPORTS宏,所以在DLL工程中是類導(dǎo)出,在其他引用該工程的工程中包含搞頭文件因為不存在TEST_EXPORTS宏,所以是類導(dǎo)入,呵呵 比較巧妙吧,其實看看網(wǎng)上的很多開源的庫生成DLL的好像很多也使用了該方法,不過可能可能開源庫很少是用VS開發(fā)的,所以不知道他們具體是怎么搞的。但是確實看到很多的開源庫的配置文件性質(zhì)的投文件中使用了這個技巧的。
                 上面說的還有一個問題就是在其他工程中包含DLL工程還存在問題,無法引用導(dǎo)出的類,應(yīng)該還有一個工作要做那就是應(yīng)該包含DLL工程生成的lib 和dll文件加上導(dǎo)出類的頭文件就可以直接使用DLL工程中的類了哦,不過如果是自己開發(fā)還是最好把DLL工程和要引用DLL的工程作為一個解決方案的啦,這樣方便調(diào)試的,這里有幾個問題要注意:
                  1 項目依賴一定要設(shè)置好,至于怎么設(shè)置 那我就不說了哦,呵呵 在項目右鍵總是會的哦
                  2 項目引用要設(shè)置哦,比如說工程A使用了exportA類,那就一定要設(shè)置引用,引用工程Test,怎么設(shè)置,在A的通用屬性中的引用中設(shè)置啦。
                ok這樣就可以開發(fā)出使用DLL的工程了哦,Release的時候含有一大堆的DLL給用戶搞得很專業(yè)的樣子哦,呵呵!PS:可能有人說導(dǎo)出類會暴露很多細節(jié)給用戶啦,呵呵這個其實也好解決的哦,看看OCI的封裝就會知道哦,使用私有類就可以隱藏所有的私有方法和屬性的哦,具體怎么搞?呵呵去看看exception C++上關(guān)于IMPL的啦 上面有很好的說明撒。
            posted on 2008-12-21 00:40 Richard Liu 閱讀(7174) 評論(3)  編輯 收藏 引用

            Feedback

            # re: VS2005開發(fā)DLL工程 2010-03-04 20:56 wendy wang
            您有什么VS2005編庫的一些資料嗎?介紹一下,謝謝.如果有麻煩您發(fā)給我一下
            wgytsh@gmail.com  回復(fù)  更多評論
              

            # re: VS2005開發(fā)DLL工程 2010-05-31 14:31 zofi
            我操你媽,不會說中國話是不是,標點不會用啊,一句話說得跟屎一樣,垃圾  回復(fù)  更多評論
              

            # re: VS2005開發(fā)DLL工程 2011-07-24 12:54 ccd
            @zofi
            樓上的,不要傷害樓主  回復(fù)  更多評論
              


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


            国产一区二区三区久久| 国产精品一区二区久久精品| 狠狠精品干练久久久无码中文字幕 | 久久av高潮av无码av喷吹| 久久国产成人精品国产成人亚洲| 欧美伊人久久大香线蕉综合69| 亚洲精品无码久久久| 人妻精品久久久久中文字幕69| 香蕉久久夜色精品国产小说| 人妻中文久久久久| 成人免费网站久久久| 伊人久久一区二区三区无码| 7777久久亚洲中文字幕| 精品久久综合1区2区3区激情| 99久久精品免费看国产一区二区三区 | 精品久久8x国产免费观看| 久久亚洲AV永久无码精品| 色婷婷久久综合中文久久蜜桃av| 久久精品无码av| 精品永久久福利一区二区| 亚洲伊人久久综合影院| 久久免费美女视频| 久久久久免费看成人影片| 日韩久久久久中文字幕人妻| 久久青草国产精品一区| 久久国产色AV免费看| 久久久精品国产| 久久久久99精品成人片| 国产一级持黄大片99久久| 一本一本久久A久久综合精品 | 99蜜桃臀久久久欧美精品网站| 久久亚洲精品无码观看不卡| 9久久9久久精品| 97r久久精品国产99国产精| 亚洲精品乱码久久久久66| 无码国内精品久久人妻麻豆按摩| 久久WWW免费人成—看片| 久久九九青青国产精品| 久久国产精品99精品国产987| 一本久久a久久精品亚洲| 中文字幕人妻色偷偷久久 |