Forum: Programmieren allgemein
by Apollonius,
1. Jun 2009
Du musst bedenken, dass Klassen in C++ standardmäßig auf dem Stack abgelegt werden. Grundsätzlich solltest du also überall IBaseInterface durch IBaseInterface* ersetzen.
Forum: Programmieren allgemein
by Apollonius,
1. Jun 2009
Ich wusste gar nicht, dass C das Schlüsselwort Interface kennt. Ich hätte das Interface spontan so übersetzt:
class IBaseInterface: public IUnknown
{
virtual __stdcall void* GetHandle() = 0;
}
Meine C++-Kenntnisse sind allerdings sehr beschränkt. Kannst du das so mal ausprobieren?
Forum: Programmieren allgemein
by Apollonius,
1. Jun 2009
Wo kommen diese Makros DECLARE_INTERFACE_ und STDMETHOD her?
Forum: Programmieren allgemein
by Apollonius,
1. Jun 2009
Eigentlich sollte ein Interface in C++ eine Klasse ohne Felder sein, deren Methoden alle abstrakt (pure virtual) sind. Außerdem sollte die Klasse von IUnknown abgeleitet sein. Kannst du mal zeigen, wie es zur Zeit aussieht?