title: C++ calling C# COM interop error: HRESULT 0x80131509
body: <p>I create a C# COM interop for c++ to invoke.
  I have registered the dll and tlb file by regasm.
  everything goes well till one day i changed code of C# part (i didn't change the definition of interface, just implementation changed). one interface in COM returns an error 0x80131509. the strange thing is, it is only happened in some computers (my develop PC is works well so i can't debug this problem).
  I'm not really clear on how the C# COM worked with C++, after i registered them, i just know they create key value in window registry.(like what regasm /regfile generated). how c++ knows where the COM dll is(search path environment variables)? and what the use of tlb file in run time?</p>
  
  <p>any suggestion?</p>