我正在尝试创建一个广泛使用HANDLE
的应用程序。我已经完成了很多关于这些教程的搜索,但没有找到。是否有关于如何创建HANDLE
?
注意:我想要一个关于如何使用HANDLE
,Create
和Get
函数创建完整Delete
的教程。
答案 0 :(得分:2)
通常,句柄只是您向用户提供的内容,用于表示您在内部拥有的某些数据,以防止他们无意中使用它。一种简单的方法是使用指针。
Public Header:
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;}
这非常简单。