Frage

Ich habe eine Reihe von Objekten, die Abstracts Schnittstellen erzeugt aus einer IDL-Datei erben. Jedes Objekt, das die Verwendung von Thesen Schnittstellen die gleiche Datei interfaces.h umfasst, die alle c enthalten ++ generierte abstrakte Klassen, die zu der IDL-Schnittstelle zugeordnet werden.

Jedes Mal, wenn ich etwas in interfaces.idl alle Klassen ändern, die davon abhängen muß, da interfaces.h Änderung wieder aufzubauen. Gibt es eine Fahne oder etwas midl zu sagen, jede abstrakte Klasse in ihrem eigenen .h zu generieren?

War es hilfreich?

Lösung

Die einzige Art, wie ich denken kann, ist jede Schnittstelle in seiner eigenen IDL-Datei zu setzen, oder teilen sie in mehrere IDLs nach Raten-Änderung.

Dann sind (oder ist es #import - ich vergessen) diese Schnittstelle IDLs in der Hauptbibliothek IDL, die die Bibliothek Typ produzieren, wenn Sie brauchen, dass

.

Andere Tipps

Hier ist ein Beispiel, wie die IDL zu organisieren getrennte H-Dateien zu erzeugen und eine einzelne typelib. Die richtige Richtlinie ist der Import.

main.idl

import "oaidl.idl";
import "ocidl.idl";

import "frag1.idl";
import "frag2.idl";

[
    uuid(1BECE2AF-2792-49b9-B133-BBC89C850D6F),
    version(1.0),
    helpstring("Bibliothèque de types")
]
library Library
{
    importlib("stdole2.tlb");

    interface IFrag1;
    interface IFrag2;
}

frag1.idl

import "oaidl.idl";
import "ocidl.idl";

[
    object,
    uuid(9AEB517B-48B9-4628-8DD3-4A0BA8D39BEF),
    dual,
    nonextensible,
    helpstring("Interface IFrag1"),
    pointer_default(unique)
]
interface IFrag1 : IDispatch {
    HRESULT frag1();
};

frag2.idl

import "oaidl.idl";
import "ocidl.idl";

[
    object,
    uuid(D60835D4-E1B1-40fb-B583-A75373EF15BE),
    dual,
    nonextensible,
    helpstring("Interface IFrag2"),
    pointer_default(unique)
]
interface IFrag2 : IDispatch {
    HRESULT frag2();
};
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top