Am 18.02.2014 18:31, schrieb Matthew Fong:

On Tue, 18 Feb 2014 10:06:05 GMT, Sönke Ludwig wrote:

{
	...
	"subConfigurations": {
		"vibe-d": "win32"
	},
	"versions": ["VibeDefaultMain"]
}

This will use the correct linker settings. Have a look at vibe.d's package.json to see how this is organized.

Ok, this almost fixes the problem.
After adding that section to my package.json, the output is as follows:

C:\test_flash\project>dub --arch=x86_64
Got application for true
Checking dependencies in 'C:\test_flash\project'
Copying files...
Building configuration "application", build type debug
Compiling...
source\autodata.d(46): Warning: toHash() must be declared as extern (D) size_t toHash() const nothrow @safe, not const ulong()
Linking...
packetexport.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp_TranslateMessage" in Funktion "_D4vibe4core7drivers5win3216Win32EventDriver15doProcessEventsMFkZb".
(...)

So I looked up these missing functions on MSDN and turns out they're all from User32.lib, so I simply added

"libs-windows": [
				...
				"user32"
			],

to dub's package.json. That made it compile+link+run correctly. I'm now a happy guy :)
Still, I wonder why this was necessary for me though. If this really is required, maybe it should be added by default.

Seems like the 32-bit toolchain has these symbols defined automatically
somehow (probably dragged in by Phobos/Druntime). I didn't notice the
problem on 64-bit either, because the tested projects all had user32.lib
manually linked in already for other reasons. I'll add it to the list now.