我是创建 dll 文件的初学者。我一直在到处搜索,但找不到什么帮助,可能是因为这是一个基本的东西?我想知道我是否总是必须编写一个头文件来创建一个 dll 文件?我已经根据互联网的一些帮助编写了 .cpp 文件。我已经构建了它并且很好,但是目录中没有 .lib 文件所以我想知道是不是因为我没有为 dll 创建头文件?如果是,你能帮我写一个代码吗?这是我的 .cpp 代码。这是球体代码的简单表面积和体积计算。
// myfirstdll.cpp : Defines the exported functions for the DLL application.
//
#include "stdafx.h"
#include "math.h" //library that defines the pow function
#define M_PI 3.14159 //declare our M_PI constant
/*BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved )
{
return TRUE;
}*/
//Function declarations
extern "C" __declspec(dllexport) int __cdecl GetSphereSAandVol(double radius, double* sa, double* vol);
double GetSA(double radius);
double GetVol(double radius);
__declspec(dllexport) int __cdecl GetSphereSAandVol(double radius, double* sa, double* vol)
//Calculate the surface area and volume of a sphere with given radius
{
if(radius < 0)
return false; //return false (0) if radius is negative
*sa = GetSA(radius);
*vol = GetVol(radius);
return true;
}
double GetSA(double radius)
{
return 4 * M_PI * radius * radius;
}
double GetVol(double radius)
{
return 4.0/3.0 * M_PI * pow(radius, 3.0);
}
最佳答案
DLL 的头文件仅用于声明导出的函数,它与生成 .lib 文件的编译器无关。您当然可以直接在 DLL 的 .cpp 文件中声明函数,编译器不关心其中一种方式。所以在这方面,不需要头文件。
但是,如果您计划在其他 C/C++ 项目中静态使用 DLL,则头文件很有用,因为函数已经声明,因此不必在调用项目中手动声明。
关于c++ - 创建dll文件是否一定要写头文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25271097/