• 【转】VS2010中 C++创建DLL图解


    标签: dllc++2010threadlibraryc
     
    本文章已收录于:
     
    分类:

    一、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++工程LibarayMyDLLDebugMyDLL.lib 和对象 D:Visual C++工程LibarayMyDLLDebug

  • 相关阅读:
    (10)进程---Manager数据共享
    (9)进程---JoinableQueue队列
    (8)进程---Queue队列
    (7)Pool进程池
    (6)进程---Event事件
    (5)进程--锁和信号量
    (4)进程---daemon守护进程和join阻塞
    XSLT知识点【一】
    XSL-FO知识点【一】
    XPath知识点【一】
  • 原文地址:https://www.cnblogs.com/starsKing/p/6956487.html
Copyright © 2020-2023  润新知