use*_*569 3 c++ dll header visual-studio-2010 visual-c++
我是创建 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);
}
Run Code Online (Sandbox Code Playgroud)
DLL 的头文件仅用于声明导出的函数,与生成 .lib 文件的编译器无关。您当然可以直接在 DLL 的 .cpp 文件中声明函数,编译器不关心其中一种方式。所以在这方面,头文件不是必需的。
但是,如果您计划在其他 C/C++ 项目中静态使用 DLL,则头文件很有用,因为函数已经被声明,因此不必在调用项目中手动声明。
常见的做法是与 .dll 文件一起生成头文件和 .lib 文件。
然后,在您的项目中,您将使用 .dll 创建项目的 .h 文件和 .lib 文件,以便将 .dll 静态链接到其他应用程序/dll。
因此,最佳实践是将 .h 和 .lib 与 .dll 一起使用,但这不是强制性的。
| 归档时间: |
|
| 查看次数: |
3438 次 |
| 最近记录: |