IDL trägt Methode nicht ins Interface ein, sondern nur in Klasse
-
Hallo Forum,
arbeite immer noch mit VS V6.0 und habe mit der IDL ein Problem.
Was ist der Unterschied, damit eine Methode in die Klasse wandert oder ins Interface.Hintergrund: Wenn man aufs Interface->rechtsclick eine neue Methode zufügt, dann wandert diese ins Interface, soweit so gut.
Jetzt habe ich aber auch schon Methoden händisch zugefügt, d.h. in die idl eingetragen, anschliessend in die h/cpp meiner Klasse händisch eingetragen.
In diesem Fall ist es anscheinend reiner Zufall, ob diese Methode in die Klasse wandert oder ins Interface (zu sehen am Projektbaum und auch später, wenn man aufs Interface zugreifen möchte)Wie kann ich das manuell ändern, d.h. eine Methode von der KLasse ins Interface verschieben??
Ich habe 2 verschiedene Methoden, eine im Interface, eine in der Klasse verglichen und kann keine Unterschiede feststellen
Nun ja, irgendwo muss ja ein Unterschied sein, nur wo?Danke
-
Am einfachsten ist es, wenn du die Dinge so benennst wie sie heißen und nicht neue Namen dafür erfindest.
Naja, ich versuchs mal: mit IDL meinst evtl. die Codeansicht deiner IDE und mit Interface meinst du vielleicht deine Dialog-Ressource.
Also geht es dir um die Verknüpfung von Code und Ressource, oder?? Schau dir dazu mal die Message_Map an. Du findest sie in der cpp-Datei deiner Dialogklasse.
-
Flockig schrieb:
Am einfachsten ist es, wenn du die Dinge so benennst wie sie heißen und nicht neue Namen dafür erfindest.
Naja, ich versuchs mal: mit IDL meinst evtl. die Codeansicht deiner IDE und mit Interface meinst du vielleicht deine Dialog-Ressource.
Also geht es dir um die Verknüpfung von Code und Ressource, oder?? Schau dir dazu mal die Message_Map an. Du findest sie in der cpp-Datei deiner Dialogklasse.Nun, ich meine Interface Definition Language (IDL)
-
Es könnte an verschiedenen Parametern liegen, so z.B. mit
[id(19), helpstring("method R1")] HRESULT R1([in,out] SAFEARRAY (VARIANT) *pParams);
nimmt VS 6.0 beim Speichern automatisch aus dem Interface herraus!
Mir wäre schon geholfen, wenn der Compiler die Methode R1 wenigstens in die *tlh generieren würde.
-
In der tlh muss die Datei in jedem Fall drin sein.
Sonst würde ich sagen, dass Dein idl Compiler nicht korrekt arbeitet, oder die Datei gar nicht kompiliert.
Ist das ein duales Interface?
Der Syntax kommt mir falsch vor.
-
Der Compiler arbeitet korrekt. Der Einwurf mit der tlh war ein Fehler von mir.
Nichtsdestotrotz bleibt das Verhalten in VS V6.0 und die Einsortierung in Interface bzw. Klasse.
Letztendlich ist jetzt aber die Lösung dafür nicht mehr wichtig, da ich mit der aktuellen *.tlh klarkomme. Wundern tut es mich doch.