zoukankan      html  css  js  c++  java
  • 使用vs2019编写dll并调用

    1.创建DLL

    新建头文件(DLL1.h)声明dll包含的函数SayHello()
    #pragma once
    #include <iostream>
     
    extern "C" __declspec(dllexport) void SayHello();

    编辑后如图

    新建类(DLL1.cpp),编写函数
    #include "pch.h"
    #include "DLL1.h"
    #include <string>
    using namespace std;
    void SayHello()
    {
        std::cout << "Hello!你成功了!" << std::endl;
    }

    文件位置

    生成解决方案
    dll路径为 E:\code\injectDLL\Dll1\Debug\Dll1.dll

    2.创建C++工程并配置

    创建C++工程TestDLL来调用dll
    添加源文件TestDLL.cpp
    将上一步生成的Dll1.dll和Dll1.lib复制到TestDLL.cpp的同目录下,才能调用
    同时因为复制来的lib用到了头文件DLL1.h所以也要一并复制过来
    头文件还要再导入现在的工程才会被引用,右键头文件- “添加”–>“现有项”
    导入完成
    3.编写调用代码
    首先修改“Dll1.h”头文件中的代码:
    #pragma once
    #include <iostream>
     
    extern "C" __declspec(dllexport) void SayHello();
    改为
    #pragma once
    #pragma comment(lib,"Dll1.lib")
    #include <iostream>
     
    extern "C" __declspec(dllimport) void SayHello();
    #pragma comment(lib,"Dll1.lib")表明引用Dll1.lib
    dllexport用来声明导出函数,导出一个dll给别人用
    dllimport声明一个导入函数,将别人dll导入来自己用
     
    编辑TestDLL.cpp代码调用DLL
    #include "DLL1.h"
    int main()
    {
           SayHello();
    }
    编译测试
    调用成功
  • 相关阅读:
    Linux 基础篇(二)
    Linux 基础篇
    pandas 的使用
    git 使用和一些错误
    NetBackup :Unable to retrieve version of the server xxx.xxx.xxx
    Splunk 基本使用
    Symantec(赛门铁克)非受管检测
    matplotlib 的几种柱状图
    python 清空list的几种方法
    ACE
  • 原文地址:https://www.cnblogs.com/Archimedes/p/14781990.html
Copyright © 2011-2022 走看看