inline __missing_type__ IAgilentInfiniiumSystem::GetIO ( ) { __missing_type__ * _result; HRESULT _hr = get_IO(&_result); if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this)); return _result; } 

Error in line return _result;

 Error C2440 'return': cannot convert from '__missing_type__ *' to '__missing_type__' 

I try to correct by returning the address, replacing the line with: return &_result;

The result is zero, the error is exactly the same. I even tried to comment out this piece of code, it still finds an error.

The question itself: how to fix, or get around.

  • And what type expects get_IO as a parameter? - 0xdb
  • virtual HRESULT stdcall get_IO (/ * [out, retval] * / __missing_type * * Val) = 0; @ 0xdb - qqffx
  • What is the difference between __missing_type__ and __missing_type ? - 0xdb
  • @ 0xdb You did not notice the presence of * . - αλεχολυτ
  • What is this .tli file .tli general, who generates it and on the basis of what? - αλεχολυτ

1 answer 1

Try this:

 inline __missing_type__ IAgilentInfiniiumSystem::GetIO ( ) { __missing_type__ * _result; HRESULT _hr = get_IO(&_result); if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this)); return *_result; } 

Or so:

 inline __missing_type__ *IAgilentInfiniiumSystem::GetIO ( ) { __missing_type__ * _result; HRESULT _hr = get_IO(&_result); if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this)); return _result; } 
  • It did not help, the second option gave an error that somewhere further along the code the function call is incompatible. - qqffx
  • I have a feeling that he simply does not perceive edits in files that are automatically generated. There may be an error in the original .dll, but in that case I have even fewer ideas on how to fix it. - qqffx