用Visual Studio 2017创建dll文件

首先打开VS 2017,新建一个“动态链接库(DLL)”项目。

用Visual Studio 2017创建dll文件_第1张图片

创建完之后,我们可以看见默认有这些文件:

用Visual Studio 2017创建dll文件_第2张图片

这些我们暂时都不用管,保持原样就好。我们再创建一个.h和.cpp文件(这里我命名为dll.h和create_dll.cpp)

dll.h

#pragma once

// 创建DLL项目的时候,VS会默认添加一个“<你的项目名称>_EXPORTS”的预处理器头,
// 这样一来,添加了DLL_API标记的函数就会被导出,而对于一般的项目,就会看作
// 是导入的函数,方便使用。
#ifdef DLL1_EXPORTS
#define DLL_API __declspec(dllexport)  
#else
#define DLL_API __declspec(dllimport)  
#endif

#include 

// 由于C++会重载函数等,所以为了将来能够顺利调用,必须指明采用C的方式
extern "C"
{
	// 这个是随便写的一个判断素数的函数
	DLL_API bool isPrime(std::uint64_t n);
}

create_dll.cpp

#include "pch.h"

#include "dll.h"
#include 
#include 

using namespace std;

void deleteK(vector& v, uint64_t k);

bool isPrime(uint64_t n)
{
	uint64_t m = sqrt(n);
	vector v;
	for (uint64_t i = 2; i <= m; ++i)
	{
		v.push_back(i);
	}
	for (uint64_t i = 0; i < v.size(); ++i)
	{
		if (v[i] == 0)
		{
			continue;
		}
		if (n % v[i] == 0)
		{
			return false;
		}
		else
		{
			deleteK(v, v[i]);
		}
	}
	return true;
}

void deleteK(vector& v, uint64_t k)
{
	for (uint64_t i = k - 2; i < v.size(); i += k) 
	{
		v[i] = 0;
	}
}

编写完成后,我们编译项目,就会得到一个dll文件,这里我选择Release x64。

用Visual Studio 2017创建dll文件_第3张图片

编译得到的dll文件采用stdcall调用约定(还有一种常见的是cdecl)。

你可能感兴趣的:(windows,c++,dll,visual,studio)