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


    转载地址:http://blog.csdn.net/g710710/article/details/7255744

    一、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



    def 文件的作用是将DLL的函数入口导出,使程序可以正确访问,因为前面已经有了使用_declspec(dllexport)或_declspec(dllinport)来定义,所以可以不需要。再者使用VS2010学习版本貌似没有def文件类型定义,所以也可以考虑取消使用。

    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

  • 相关阅读:
    Java NIO使用及原理分析(二)(转)
    Java NIO使用及原理分析 (一)(转)
    虚拟机字节码执行引擎
    虚拟机类加载机制
    浅析Java中的final关键字
    java内存模型7-处理器内存模型
    java内存模型6-final
    最小生成树
    有向图的基本算法
    并查集(Union-Find)算法介绍
  • 原文地址:https://www.cnblogs.com/csshaw/p/3958282.html
Copyright © 2020-2023  润新知