c++ - 创建dll文件是否一定要写头文件?

标签 c++ visual-studio-2010 visual-c++ dll header

我是创建 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/

相关文章:

visual-studio-2010 - 如何在 Visual Studio 2010 中从 Ankhsvn 插件切换到 VisualHG

c# - (Crystal Reports) 某些详细信息后分页?

c# - 专辑插图未编码

windows - 在 VS 2012 Professional 的调试位置工具栏中禁用挂起、恢复下拉框

c++ - 模板和矩阵转换

c++ - 从 jpg、dng 和 awr raw 文件获取元数据

c++ - 在遍历 vector 时从 vector 中删除对象

c++ - 对两个案例标签使用相同的值与对单个案例使用多个案例标签有什么区别?

c++ - 在 Visual Studio Express 2012 中包含路径

c++ - 我如何检查在无模式对话框中单击了该按钮