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

时间:2014-02-08 00:05:07

标签: c++ visual-studio-2010 handle

我正在尝试创建一个广泛使用HANDLE的应用程序。我已经完成了很多关于这些教程的搜索,但没有找到。是否有关于如何创建HANDLE

的教程

注意:我想要一个关于如何使用HANDLECreateGet函数创建完整Delete的教程。

1 个答案:

答案 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;}

这非常简单。