title: ImportLib referencing full path in MIDL
body: <p>I discovered that with this syntax, I would get a compile error:</p>
  
  <pre><code>importlib("MSADDNDR.dll");
  </code></pre>
  
  <p>The error given would be:</p>
  
  <pre><code>error MIDL2337 : unsatisfied forward declaration : _IDTExtensibility2 [ Coclass '_Extension'  ]
  </code></pre>
  
  <p>But that's a lie, kind of. Looking earlier in the output, we see this:</p>
  
  <pre><code>warning MIDL2015 : failed to load tlb in importlib: : MSADDNDR.dll
  </code></pre>
  
  <p>So, if we change the attribute to include the full path:</p>
  
  <pre><code>importlib("C:\Program Files (x86)\Common Files\Designer\MSADDNDR.dll");
  </code></pre>
  
  <p>It will now compile correctly.... but... this is referencing a 32-bit DLL. Suppose I want to cross compile? So I specify <code>/amd64</code> option to the MIDL. This still compiles successfully. I cannot find any documentation that may suggest that using full path to a potentially wrong bitness DLL for <code>importlib</code> would cause problems. </p>
  
  <p>Can anyone else confirm or deny if there are potential problems or if there might be a better approach to avoid embedding full path? </p>
  
  <p>Interestingly, when I load the generated <code>.tlb</code> file in the <code>oleview</code>, the full path aren't there anymore; which suggests this is an non-issue but I'd like to make sure that is so.</p>