Seite 1 von 1

CoInitialize wurde nicht aufgerufen

Verfasst: Sonntag 30. Oktober 2005, 17:34
von Buell
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?

Verfasst: Donnerstag 3. November 2005, 08:24
von Gast
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

Verfasst: Montag 7. November 2005, 15:04
von Buell
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.