COM方法调用返回灾难性故障

注意:

  • BSTRvariables传递给COM方法, HRESULT返回值为8000FFFF
  • 以前与接口指针调用成功 :HRESULT为0
  • 在Visual Studio中执行成功 ,外部失败 – 释放和debugging

插图:

 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 

Solutions Collecting From Web of "COM方法调用返回灾难性故障"

simFile看起来是存储在const char *中的单个字符。

它不是一个NULL结尾的字符串,除非它是一个空字符串,它的内容是0.你确定你不是这个意思吗?

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

更好的是,你可以直接使用SysAllocString来获得一个BSTR。

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