Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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.

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.

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

...

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);

}

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.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.