CoInitialize() n'a pas été appelé exceptions en C++

-Mon problème

J'ai eu CoInitialize n'a pas été appelé exption.

-Mon projet de structure

Voici mon problème. J'ai une dll COM, MCLWrapper.dll développé avec C#; j'ai un autre natif de dll C++, ThorDetectorSwitch.dll que les appels MCLWrapper.dll Et enfin, j'ai une application console TDSTest.exe que les appels ThorDetectorSwitch.dll. En gros, quelque chose comme ceci:

TDSTest.exe (C++ console) -> ThorDetectorSwitch.dll (C++ natif) -> MCLWrapper.dll (C#)


Code TDSTest.exe chargement de la ThorDetectorSwitch.dll:

HINSTANCE hInst = LoadLibrary(_T("C:\\TIS_Nick\\Hardware\\Devices\\ThorDetectorSwitch\\TDSTest\\TDSTest\\Debug\\Modules_Native\\ThorDetectorSwitch.dll"));

Constructeur en ThorDetectorSwitch.cpp

ThorDetectorSwitch::ThorDetectorSwitch() : _mcSwitch(__uuidof(MCLControlClass))
{
    _A  = WstringToBSTR(L"A"); 
    _B  = WstringToBSTR(L"B");
    _C  = WstringToBSTR(L"C");
    _D  = WstringToBSTR(L"D");

    _deviceDetected = FALSE;
}

Le point de rupture frappe la première parenthèse du constructeur de la ThorDetectorSwitch.dll ci-dessus, mais l'exception s'est produite immédiatement si j'ai frappé F10 (une étape de plus)

Il saute

 hr = CoCreateInstance(rclsid, pOuter, dwClsContext, __uuidof(IUnknown), reinterpret_cast<void**>(&pIUnknown));

dans le comip.h. La rh est tout simplement "CoInitialize n'a pas été appelé".

J'ai pensé abou ce problème pendant des jours, et ne peut pas trouver une solution. Quelqu'un ici peut le partage des idées? Vraiment l'apprécier.

  • Je pense que vous devez appeler CoInitialize(). Source: le message d'erreur flipper dit "CoInitialize() n'a pas été appelé"
  • J'ai appelé CoInitialize() comme le Roseau mentionné, mais il est un autre problème. Voir mes commentaires du Roseau.
  • init_apartment(); n'était probablement pas appelé avant d'utiliser les composants winrt pour ceux qui courent à travers cette question lors de l'apprentissage de C++/WinRT. Assurez-vous que la ligne s'exécute en premier.
InformationsquelleAutor Nick X Tsui | 2013-06-12