c++编译动态链接库dll

c++编译程序为动态链接库dll文件,然后在新工程里调用

1、编写要编译的程序

函数部分add.cpp

#include
#include "header.h"
using namespace std;int add(int a,int b)
{
 return a + b;
}

头文件header.hpp

#define USB_CAMERA_API _declspec(dllexport)
#include
extern "C"
{
 USB_CAMERA_API int add(int a, int b);
}

整个工程如下图所示
c++编译动态链接库dll_第1张图片
编译:点击项目属性选择配置属性为动态库(.dll),然后点击编译,在x64/release文件夹下生成makedll.dll和makedll.lib文件
c++编译动态链接库dll_第2张图片
c++编译动态链接库dll_第3张图片

2、调用dll文件

编写调用程序test.cpp,将生成的makedll.dll和makedll.lib文件复制到test.cpp所在目录

#include  
#include 
#include
#include
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    HINSTANCE hInst = LoadLibrary(L"makedll.dll");
    if (!hInst)  
    {
	  printf("加载MathFuns.dll失败!\n");  
    }
    typedef int(*DllDemoAPIProc)(int a, int b);
    DllDemoAPIProc add = (DllDemoAPIProc)::GetProcAddress(hInst,   "add");
    int result = add(3, 2);
    cout << result << endl;
    ::FreeLibrary(hInst);
    system("pause");
    return 0;
}

项目资源文件下添加makedll.lib
c++编译动态链接库dll_第4张图片
运行程序
在这里插入图片描述

你可能感兴趣的:(c++)