CoInitialize wurde nicht aufgerufen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Buell
User
Beiträge: 90
Registriert: Samstag 29. Oktober 2005, 14:17

Sonntag 30. Oktober 2005, 17:34

Hallo,

bin grad zu bl***d, will eine Funktion in einem eigenen Thread starten, bekomme aber bei Ausführung folgende Fehlermeldung:

pywintypes.com_error: (-2147221008, 'CoInitialize wurde nicht aufgerufen.', None, None)

Code: Alles auswählen

class LoadSR:
    def __init__(self):
        # globals in class
        self.cfg = pyCfg.pySapiCfg()

        # Initial all sr engines
        self.sr_list = self.cfg.getMySR()
        self.sr_imports = []
        for item in self.sr_list:
            self.sr_imports.append(__import__("SAPI_SR." + item, globals(), locals(), item))
            print "SR " + item + " initialized"

        # Connect to current engine
        start_new_thread(self.ConnectCurEngine,())

    def ChangeGrammar(self, grammar):
        return None
    
    def ChangeEngine(self, engine):
        return None

    def ConnectCurEngine(self):
        sr_id = self.GetID()
        # start_new_thread(self.sr_imports[sr_id].pySapiIn(),())
        connect = self.sr_imports[sr_id].pySapiIn()
        return None
Was läuft da falsch?
Gast

Donnerstag 3. November 2005, 08:24

Hallo Buell,

woher kommt CoInitialize? aus C++? wenn Ja liest du weiter :)

Ich kenne pywintypes auch nicht, aber ich habe Boost.python verwendet. Es gab auch ähnliches Problem--> MFC normaler DLL erzeugt diesen Aufruf nicht!


BOOL DeinApp::InitInstance()
{
LPVOID pvReserved =NULL;
::OleInitialize(pvReserved);

ich habe hier OleInitialize manuell hinzugenommen und es funktionier bei mir!

Hoffe, dies gibt dir einen Hinweis!

Boostpy
Buell
User
Beiträge: 90
Registriert: Samstag 29. Oktober 2005, 14:17

Montag 7. November 2005, 15:04

Problemlösung endlich gefunden. Habe versucht einen Thread zu starten und danach per dispatch eine COM-Schnittstelle anzusprechen, das funktioniert so nicht. Das Ganze genau anders herum und funzt.
Antworten