Also, i think it's wrong to expose class internal HANDLE. That's
breaking encapsulation.
On Oct 19, 4:52 am, "Scott McPhillips [MVP]" <org-dot-mvps-at-
scottmcp> wrote:
> "Victor Bazarov" <v.Abaza...@comAcast.net> wrote in message
>
> news:ff8or7$u97$...
>
>
>
>
>
> > Donos wrote:
> >> I have a HANDLE to an Event, like this..
>
> >> HANDLE h = ::CreateEvent(NULL, FALSE, FALSE, NULL);
>
> >> This is running in one thread in one class. For example we will call
> >> that class as "Class A"
>
> >> Now i want to use this HANDLE in another thread in another class to
> >> call SetEvent(h); This is "Class B"
>
> >> I tried creating a pointer to Class A and using it, But it gets an
> >> invalid HANDLE.
>
> >> Any idea how this can be done?
>
> > This is not a C++ language question. This is a Windows programming
> > question. Please ask Windows programming questions in the Windows
> > programming newsgroup.
>
> V: It is a very fundamental C++ language question, even though it uses
> Windows terms. The OP clearly needs help with C++ concepts.
>
> Donos: The problem stems from a lack of understanding of the difference
> between a class and an object of that class. This is best approached by
> careful study of the first few chapters of any C++ book. Classes do not
> store any data, only objects do that.
>
> The handle is not stored in class A, it is stored in an object whose type is
> class A. Creating a pointer to Class A elsewhere does not magically make it
> point at the original A object. If object B wishes to access a member
> variable of object A then object B must have a pointer (or reference) to the
> original A object and this pointer must be initialized with the address of
> the A object. Also notice that h must be a member variable, not the
> automatic variable you show in your code.
>
> class A {
> public:
> HANDLE h;
> A::A() { h = CreateEvent(NULL, FALSE, FALSE, NULL);}
>
> };
>
> // some function in class B
> A* a = new A();
> HANDLE hcopy = a->h;
>
> --
> Scott McPhillips [VC++ MVP]- Hide quoted text -
>
> - Show quoted text -
|