C++ 有没有关于如何使用句柄的教程?

C++ Are there any tutorials on how to use handles?

本文关键字:句柄 的教程 有没有 于如何 C++      更新时间:2023-10-16

我正在尝试创建一个广泛使用HANDLE的应用程序。 我已经对这些教程进行了多次搜索,但没有找到。 有没有关于如何创建HANDLE的教程?

注意:我想要一个关于如何创建一个包含CreateGetDelete函数的HANDLE的教程。

通常,句柄只是您提供给用户的东西,用于表示您内部拥有的一些数据,以防止他们玩弄它。 一种简单的方法是简单地使用指针。

公共标头:

struct my_private_data;
typedef my_private_data* MPDHANDLE;
MPDHANDLE get_new_object();
void do_task(MPDHANDLE hnd);
void release(MPDHANDLE hnd);

这就是你给人们的。 他们对my_private_data一无所知,所以编译器会让他们很难做错任何事。 而且没有其他函数接受MPDHANDLE,所以他们很难搞砸它。

在内部,您的库具有以下代码:

struct my_private_data {
void do_task();
};
MPDHANDLE get_new_object() {return new my_private_data();}
void do_task(MPDHANDLE hnd) {hnd->do_task();}
void release(MPDHANDLE hnd) {delete hnd;}

这很简单。