Babybaer Geschrieben 13. Juli 2004 Teilen Geschrieben 13. Juli 2004 Hallo Leute, ich habe eine ActiveX Control eingebunden und wenn ich auf die Methoden der OCX zugreife, bricht mir alles zusammen. Ich habe auch CoInitialize((LPVOID)0) zuvorgemacht, hier bekomme ich schon als Returnvalue S_FALSE zurück, keine Ahnung warum. Die ole32.lib habe ich auch drin und auch das vorgegebene Header habe ich. HILFE VC++ 7.1 habe ich im Einsatz. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 13. Juli 2004 Teilen Geschrieben 13. Juli 2004 wenn ich auf die Methoden der OCX zugreife, bricht mir alles zusammen.Geht's ein wenig genauer? Unter "bricht alles zusammen" kann ich mir nichts vorstellen. Ich habe auch CoInitialize((LPVOID)0) zuvorgemacht, hier bekomme ich schon als Returnvalue S_FALSE zurück, keine Ahnung warum.S_FALSE bedeutet hier, dass COM für diesen Thread bereits initialisiert wurde. Also kein Problem. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Babybaer Geschrieben 14. Juli 2004 Autor Teilen Geschrieben 14. Juli 2004 Ich habe eine exe in der ich eine OCX eingebunden habe. (Nicht über den Dialog) Hinzufügen Klasse AktiveX Control ... . Das VC++ Studio generiert dann eine (oder auch mehrere ) Klasse mit den Methoden aus der OCX. Ich kann also auch eine Objekt erzeugen und die Methoden aufrufen. die Methode: long Install(LPCTSTR strProduct) { long result; static BYTE parms[] = VTS_BSTR ; InvokeHelper(0x1, DISPATCH_METHOD, VT_I4, (void*)&result, parms, strProduct); return result; } --- hier Absturz in winocc.cpp m_pCtrlSite ist NULL; Warum? ///////////////////////////////////////////////////////////////////////////// // CWnd invoke helpers for OLE Control wrappers void AFX_CDECL CWnd::InvokeHelper(DISPID dwDispID, WORD wFlags, VARTYPE vtRet, void* pvRet, const BYTE* pbParamInfo, ...) { ASSERT(m_pCtrlSite != NULL); // not an OLE control (not yet, at least) if (m_pCtrlSite == NULL) return; va_list argList; va_start(argList, pbParamInfo); m_pCtrlSite->InvokeHelperV(dwDispID, wFlags, vtRet, pvRet, pbParamInfo, argList); va_end(argList); } --- Fehlermeldung: Debug Assertion Failed! File: winocc.cpp Line 374 ... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Babybaer Geschrieben 14. Juli 2004 Autor Teilen Geschrieben 14. Juli 2004 Ziel: Ich möchte in eine Exe, ohne einen Dialog zu nutzen, ein ActiveX Control (OCX) einbinden. Bestand: Habe eine OCX die 3 Methoden nach außen gibt. Eine Exe in der ich die OCX eingebunden habe mit Hilfe der VC++ Studios 7.1. Assi. Klasse hinzufügen, MFC ActiveX Control, usw... Es wurde eine Class angelegt, mit der ich die Methoden der OCX benutzen kann. Habe dann ein Objekt erzeugt und die Methode gerufen... Fehler: m_pCtrlSite == NULL in der winocc.cpp Was habe ich vergessen. Liegt es daran das die Class, die vom Assi angelegt wurde, von Wnd abgeleitet ist? Oder habe ich ein Create.. vergessen. Habe so was noch nie gemacht immer über einen Dlg. ///////////////////////////////////////////////////////////////////////////// // CWnd invoke helpers for OLE Control wrappers void AFX_CDECL CWnd::InvokeHelper(DISPID dwDispID, WORD wFlags, VARTYPE vtRet, void* pvRet, const BYTE* pbParamInfo, ...) { --> FEHLER hier --->>> ASSERT(m_pCtrlSite != NULL); // not an OLE control (not yet, at least) if (m_pCtrlSite == NULL) return; va_list argList; va_start(argList, pbParamInfo); m_pCtrlSite->InvokeHelperV(dwDispID, wFlags, vtRet, pvRet, pbParamInfo, argList); va_end(argList); } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Babybaer Geschrieben 14. Juli 2004 Autor Teilen Geschrieben 14. Juli 2004 Das mit dem Anworten tut wohl noch nicht ganz richtig. Habe den ersten Text geschrieben, dieser wurde aber erst sichtbar, als ich die 2te Antwort bestätigtet ???. Das soll Einer verstehen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.