COM Server erzeugen
-
Mach grad meine ersten Gehversuche mit COM (muss machen
)
Also: ich hab ne TypBibliothek von ESRI importiert und jetzt ein paar grundsätzliche Fragen und technische Probleme
- Hab einmal ne OCX, einmal ne TLB. Wenn ich das richtig verstehe, ist TLB ne Implementation, die an ATL angelehnt ist und OCX ne Implementation, welche VCL-Like ist. Welches von beiden empfehlt Ihr mir zu verwenden? Zu dem OCX find ich aber garnix gescheites im INet.
- Versuch mich gerade mit der TLB
Da is jetzt ein Interface IWorkspaceFactory2 erstellt worden. Und dann noch ein CoWorkspaceFactory und ein IWorkspaceFactoryPtr. Jetzt würd ich gern eine solche WorkspaceFactory instanziieren und mach das - nach studium einiger Internet-Seiten etc. - mit:IWorkspaceFactory2Ptr WorkspaceFactory(CoWorkspaceFactory::Create());
Sagt mir bescheid, wenn das total falsch ist.
Jo, das compiliert und linkt und dann krieg ich den Fehler HRCheck 'Create(intfObj)': Klasse nicht registriert.
In meiner Registry find ich IWorkspaceFactry2 aber und CoWorkspaceFactory und ..ory2Ptr muss es da ja nicht geben.
-
Hi,
hast du die Ausführungen in der Hilfedate " COM- Anwendungen entwickeln" gelesen ?
-
jo, hab ich - leider fehlen mir da die Beispiele.
CoWorcspaceFactory ist wohl auch ne abstrakte Basisklasse. Musste ne Spezialisierung von nehmen.
Anderes Problem:
TComInterface überlädt den &-Operator.
Jetzt müsste ich aber ner Funktion nen Zeiger auf eine von TComInterface abgeleitete Klasse geben:
IWorkspacePtr WSPtr; //iWorspacePtr ist von TComInterface ageleitet
FactPtr->OpenFromFile(const_cast<wchar_t*>(wstrConnection.c_str()), 0, &WSPtr);
OpenFromFile will nen Zeiger auf ein IWorkspacePtr. &WSPtr leifert aber nen Zeiger auf IWorkspace. Wie umgeh ich den überladenen &-Operator?