<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    一江春水向東流

    做一個(gè)有思想的人,期待與每一位熱愛(ài)思考的人交流,您的關(guān)注是對(duì)我最大的支持。

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      44 隨筆 :: 139 文章 :: 81 評(píng)論 :: 0 Trackbacks

    開(kāi)發(fā)環(huán)境是DEV C++,采用C語(yǔ)言編寫(xiě)
    創(chuàng)建一個(gè)DLL項(xiàng)目,項(xiàng)目名稱hello,DLL編寫(xiě)采用的是DEV C++中的示例代碼

    頭文件dll.h
    #ifndef _DLL_H_
    #define _DLL_H_

    #if BUILDING_DLL
    # define DLLIMPORT __declspec (dllexport)
    #else /* Not BUILDING_DLL */
    # define DLLIMPORT __declspec (dllimport)
    #endif /* Not BUILDING_DLL */


    DLLIMPORT void HelloWorld (void);


    #endif /* _DLL_H_ */

    C文件
    dllmain.c
    #include <stdio.h>
    #include <stdlib.h>

    DLLIMPORT void HelloWorld ()
    {
    ??? MessageBox (0, "Hello World from DLL!\n", "Hi", MB_ICONINFORMATION);
    }


    BOOL APIENTRY DllMain (HINSTANCE hInst???? /* Library instance handle. */ ,
    ?????????????????????? DWORD reason??????? /* Reason this function is being called. */ ,
    ?????????????????????? LPVOID reserved???? /* Not used. */ )
    {
    ??? switch (reason)
    ??? {
    ????? case DLL_PROCESS_ATTACH:
    ??????? break;

    ????? case DLL_PROCESS_DETACH:
    ??????? break;

    ????? case DLL_THREAD_ATTACH:
    ??????? break;

    ????? case DLL_THREAD_DETACH:
    ??????? break;
    ??? }

    ??? /* Returns TRUE on success, FALSE on failure */
    ??? return TRUE;
    }

    還有要注意的在.def文件中指定輸出的函數(shù),編譯生成了hello.dll文件

    DLL調(diào)用部分
    dllcall.c
    #include <windows.h>
    #include <stdio.h>
    #include <stdlib.h>

    HINSTANCE hDLL; //定義DLL包柄
    typedef void ( *func)();??? //定義函數(shù)指針原型
    func hello;? //定義函數(shù)指針
    int main()
    {
    ?if (hDLL == NULL)
    ??? hDLL=LoadLibrary("hello.dll");??//加載DLL
    ?hello = (func)GetProcAddress(hDLL,"HelloWorld"); //獲取函數(shù)指針
    ?hello();
    ?FreeLibrary(hDLL);? //釋放DLL
    ?return 0;
    }

    編譯執(zhí)行

    ?

    posted on 2009-04-06 13:46 allic 閱讀(2837) 評(píng)論(1)  編輯  收藏 所屬分類: C/C++win32

    評(píng)論

    # re: win32環(huán)境C語(yǔ)言實(shí)現(xiàn)最基本的DLL編寫(xiě)及調(diào)用實(shí)例,測(cè)試通過(guò)[原] 2010-01-11 20:25 cyxz
    welcome to visit my blog: http://blog.csdn.net/prsniper  回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 亚洲精品伊人久久久久| 亚洲国产综合91精品麻豆| 日韩免费无码一区二区三区| 亚洲精品无码AV中文字幕电影网站| 亚洲精品精华液一区二区| 国产一级黄片儿免费看| 亚洲国产精品一区第二页| 亚洲精品色播一区二区| 毛片免费视频播放| 亚洲а∨天堂久久精品9966| 毛片免费观看网址| 色窝窝亚洲av网| 亚洲一级毛片免费观看| 亚洲国产成人综合| 女人18毛片水真多免费看| 亚洲国产av玩弄放荡人妇| 亚洲?v无码国产在丝袜线观看| 黄色免费网址大全| 成人毛片免费观看视频大全| 亚洲乱人伦中文字幕无码| 91精品全国免费观看含羞草| 国产成人精品日本亚洲专区61| 中国黄色免费网站| 亚洲成人黄色网址| 日韩精品无码人妻免费视频| 亚洲精品亚洲人成在线播放| 国产网站在线免费观看| 一区二区三区免费视频播放器| 超pen个人视频国产免费观看| 深夜A级毛片视频免费| 成人毛片免费在线观看| 免费人妻精品一区二区三区| 亚洲VA成无码人在线观看天堂| 中文毛片无遮挡高潮免费| 亚洲色图视频在线观看| 日韩成人免费在线| 成人A片产无码免费视频在线观看| 亚洲国产超清无码专区| 日韩精品亚洲专区在线观看| 久久精品免费电影| 精品亚洲国产成人av|