64Bit dll load issues

Amazing Julian, great find! Don’t happen to have the workflow to load the manifest with MT do you? I’ve just downloaded the SDK but am brand new!

Sure, best I could work out goes as follows, extract the manifest from your built exe using:

"c:\pathto\mt.exe" -inputresource:"C:\pathto\test dll.exe" -out:"C:\pathto\extracted.manifest"

open the file in notepad, insert the following:

  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.6195" processorArchitecture="*" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>

right above

  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"></assemblyIdentity>
    </dependentAssembly>
  </dependency>

so it now looks like

  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.6195" processorArchitecture="*" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"></assemblyIdentity>
    </dependentAssembly>
  </dependency>

save that as altered.manifest (you can reuse that so long as you don’t alter things like architecture in the ide then run the following to replace the manifest:

"c:\pathto\mt.exe" -manifest "c:\pathto\altered.manifest" -outputresource:"c:\pathto\test dll.exe"

G’luck

1 Like

Thanks so much! Will give it a crack and report back! Owe you one or two!

J

You could tell them to link the VC runtimes statically instead of dynamically.

1 Like

Thanks again Julian, Works a treat.

William, I’ll have a chat to the developer…

Thanks again guys, what an amazing community.

1 Like

If anyone reads this in the future and needs a quick workaround, here is the build script to make it work. All the credit to Julian!

dim MTPath as string
dim result as string
dim resultcode as integer
MTPath = “C:\MT\mt.exe -manifest C:\MT\extracted.manifest -outputresource:” + chr(34)+ CurrentBuildLocationNative + CurrentBuildAppName +chr(34)
result = doShellCommand(MTPath, 20000, resultcode)

Note that you’ll need MT.exe in the path specified.