2009-03-21 6 views
1

Note:appel de méthode COM retourne Catastrophic Échec

  • passe BSTR variable méthode COM, HRESULT retour est 8000FFFF
  • appels précédents avec pointeur d'interface , a été succès: HRESULT est 0
  • exécution, à l'intérieur de Visual Studio réussit, à l'extérieur échoue - libération et debug

Illustration:

const char *simFile; 
simFile = new char; 
//omitted 
_bstr_t simFileToOpen(simFile); 
BSTR raw_sim_Open = simFileToOpen.copy(); 
SysFreeString(simFileToOpen); 
delete simFile; 

hresult = pis8->raw_Open (raw_sim_Open); //0x8000FFFF returned 

Répondre

4

simFile semble être un seul caractère stocké à l'intérieur d'un const char *.

Il n'est pas une chaîne terminée par NULL, sauf si elle est une chaîne vide et son contenu sont 0. Êtes-vous sûr que vous ne voulais pas faire quelque chose comme:

const char *simFile = new char[1024]; 
strcpy(simFile, "path"); 

Encore mieux encore, vous pouvez utilisez simplement SysAllocString pour obtenir un BSTR directement.

BSTR str = SysAllocString(_T("path")); 
+0

@Brian: Merci! :) – Aaron

Questions connexes