title: VC++ LNK2001: unresolved external symbol only when compiling on 64bit
body: <p>I have made a dll that compiles fine in 32bit mode, but when compiling in 64bit mode (both on a 32bit box cross compiling and on a native 64bit box) I get the above error.
  The symbol that it is complaining about are the following:</p>
  
  <pre><code>"struct return_info_ * __cdecl patch_file(char *,char *,char *)"
  </code></pre>
  
  <p>I am new to C++ but I think I have defined both the struct and the signature correctly.
  The struct "return_info_" is defined as follows:</p>
  
  <pre><code>typedef struct return_info_
  {
      char *message;
      int code;
  } return_info;
  </code></pre>
  
  <p>In the same header I have the signature of the function:</p>
  
  <pre><code>return_info* patch_file(char* oldfile, char* newfile, char* patchfile);
  </code></pre>
  
  <p>This is all in native c/c++ code, which is compiled as a statically linked library. I then have our main library which links to this and is a clr compatible binary. Any ideas why the 64bit compiler throws these errors?</p>