1. 程式人生 > >【轉】VS2010中 C++創建DLL圖解

【轉】VS2010中 C++創建DLL圖解

-a rar cls ret ria endif -s pan 項目

標簽: dllc++2010threadlibraryc 本文章已收錄於:
技術分享 分類: 作者同類文章X

    一、DLL的創建
    創建項目: Win32->Win32項目,名稱:MyDLL

    技術分享
    選擇DLL (D) ->完成.
    技術分享

    1、新建頭文件testdll.h
    testdll.h代碼如下:

    #ifndef TestDll_H_
    #define TestDll_H_
    #ifdef MYLIBDLL
    #define MYLIBDLL extern "C" _declspec(dllimport)
    #else
    #define MYLIBDLL extern "C" _declspec(dllexport)
    #endif
    MYLIBDLL int Add(int plus1, int plus2);
    //You can also write like this:
    //extern "C" {
    //_declspec(dllexport) int Add(int plus1, int plus2);
    //};
    #endif

    技術分享

    技術分享

    2、新建源文件testdll.cpp
    testdll.cpp代碼如下:

    #include "stdafx.h"
    #include "testdll.h"
    #include <iostream>
    using namespace std;
    int Add(int plus1, int plus2)
    {
    int add_result = plus1 + plus2;
    return add_result;
    }

    技術分享
    技術分享
    3、新建模塊定義文件mydll.def
    mydll.def代碼如下:

    LIBRARY "MyDLL"
    EXPORTS
    Add @1
    技術分享

    技術分享

    4、vs2010自動創建dllmain.cpp文件,它定義了DLL 應用程序的入口點。

    dllmain.cpp代碼如下:
    // dllmain.cpp : 定義 DLL 應用程序的入口點。
    #include "stdafx.h"
    BOOL APIENTRY DllMain( HMODULE 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;
    }

    最後,編譯生成MyDLL.dll文件和MyDLL.lib文件。

    技術分享

    技術分享

    1>------ 已啟動生成: 項目: MyDLL, 配置: Debug Win32 ------

    1> dllmain.cpp

    ========== 生成: 成功 1 個,失敗 0 個,最新 0 個,跳過 0 個 ==========

    1>------ 已啟動生成: 項目: MyDLL, 配置: Debug Win32 ------

    1> stdafx.cpp

    1> testdll.cpp

    1> MyDLL.cpp

    1> 正在生成代碼...

    1> 正在創建庫 D:\Visual C++\工程\Libaray\MyDLL\Debug\MyDLL.lib 和對象 D:\Visual C++\工程\Libaray\MyDLL\Debug

    技術分享

    【轉】VS2010中 C++創建DLL圖解