Guten Abend. Ich möchte eine DLL schreiben die von einem VB6 Programm über die COM (ATL / ActiveX) Schnittstelle angesprochen wird. Das VB6 Programm (nicht von mir) soll die DLL als Plugin laden. Das das mit einem MS Compiler geht ist mir klar. Da finde ich auch Tonnen von Beispielen. Aber so was habe ich nicht und will ich auch nicht haben. Ich hatte zwar mal ein Beispiel gefunden aber die Seite ist offline. Jetzt sitze ich hier und bin am verzweifeln. Kann mir jemand helfen? Oder wenigstens mir eine Seite nennen wo ich eine Anleitung finde. Viele Grüße, Peter
Peter schrieb: > Kann mir jemand helfen? es ist doch auch nur eine normale DLL. Kann denn Mingw keine DLLs bauen oder wo ist dein Problem? man kann sich Probleme auch selber schaffen, statt einfach das kostenlose SDK zu laden dort den Compiler zu nutzen, wird versucht es "anders" zu machen.
Immer das gleiche! Das zeigt mir das Du keine Ahnung hast von diesen COM kram. Sag doch gleich das ich VB6 nehmen soll, damit geht es garantiert. Darum geht es aber nicht, Mingw (GCC) ist der Wunsch Compiler. Eine DLL ist logisch was einfaches auch eine die ich aus VB6 aufrufen kann. Aber wenn das ganze über die COM Schnittstelle läuft ist das plötzlich was ganz anderes. Der GCC kann das ich finde halt nur kein Beispiel dafür, bzw ist das einzige was ich mal gefunden hatte nicht mehr da. Peter
Peter schrieb: > Das zeigt mir das Du keine Ahnung hast von diesen COM kram. haha, dann sag doch mal wo der Unterschied zu einer normalen DLL sein soll? sie hat nur ein paar definierte Exportierte Funktionen wie z.b. DllGetClassObject DllRegisterServer DllUnregisterServer DllCanUnloadNow es ist aber immer noch eine normale DLL.
Klar ist es eine DLL egal wie man es dreht. Anscheinend habe ich mich geirrt und Du hast doch Ahnung. Kannst Du mir auch außer ein paar Namen auch sagen wie man damit umgeht? Oder wenigstens sagen wo mal ein gutes Beispiel zu finden ist. Peter
Peter schrieb: > Oder wenigstens sagen wo mal ein gutes Beispiel zu finden ist. Google liefert wir spontan: http://www.die-seite.ch/?activex das sollte sich mit jeden Compiler übersetzen lassen. (keine Ahnung ob du aber die passenden Headerdateien hast.)
Ob das geht muss ich erst testen. Kann sein das das nur mit dem MS Compiler geht, dafür ist das ja ein Beispiel. Für dem MS Compiler habe ich übrigens dutzende Beispiele aber die waren alle nicht mit dem Mingw kompatible. VG, Peter
Peter schrieb: > Kann sein das das nur mit dem MS Compiler geht, dafür ist das ja ein > Beispiel. welchen Grund sollte es dafür geben? Es ist eine normale DLL. Sie wird wir eine normale DLL gebaut. Es gibt dort nichts was der Compiler anders machen muss. Die Frage warum du dir überhaupt das COM zeugt antust. VB kann auch Funktionen aus einfachen DLLs ansprechen. Wenn die COM-DLL keine gui bereitstellen muss, dann würde ich darauf verzichten.
Nun das VB6 Programm ist nicht von mir und hat halt für seine Plugins diese Schnittstelle gewählt. Also daran kann ich nichts ändern. Da ich kein VB6 kann und immer nur das mit dem GCC mache, muss ich halt das irgendwie zum laufen bringen. Ja es ist nur eine DLL, aber da steckt halt der ganze COM Kram drin und dafür suche ich halt ein Beispiel. Peter
Ich habe genau das selbe Problem: Erzeugung einer COM-DLL ohne Microsoft Compiler. Ich habe einge Seiten gefunden die, nach einem ersten Überlesen in die richtige Richtung zu gehen scheinen. http://stackoverflow.com/questions/84269/using-component-object-model-com-on-non-microsoft-platforms Das folgende scheint ein lauffähiges Ergebnis zu ergeben: http://www.codeproject.com/Articles/13601/COM-in-plain-C#DLL aber ich habe es noch nicht ausprobiert. Ein Hacken ist das dennoch notwendige downloaden eines "SDK" von MS von dem ich nicht weiss wie es genau heisst. Wenn jemand weitere Tips hat, wäre ich auch sehr interesiert. Wenn jemand die Infos aus diesen Links sinnvoll oder auch nutzlos findet würde mich das auch intressieren.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.