On Fri, 16 Jan 2015 11:40:38 -0800, Ben Goetter wrote: > On 1/16/2015 11:00 AM, Lehi Toskin wrote: >> Good news is it's giving me a new error! Yay! "%1 is not a valid Win32 >> application.; errno=193" > > This is /the/ classical 32-versus-64-bit mismatch error. Most likely, > once of the DLLs that your DLL in turn depends on is loading in the > wrong flavor. Bitness is the most likely suspect, but you could also > conceivably have a version compiled for a different target architecture. > > To decipher this and future error codes, look them up in winerror.h in > your Windows SDK. Then go grepping through msdn.microsoft.com with the > name of the constant. This one is ERROR_BAD_EXE_FORMAT. > > You probably should take Racket out of the loop here. Write a four-line > C program that explicitly tries to load your DLL. Something like > > #include <windows.h> > HANDLE h = LoadLibraryA("mydll.dll"); > if (NULL == h) printf("ERROR %lu\n", GetLastError()); > else { FreeLibrary(h); printf("Great success\n"); } > > Compile that fragment in the same bitness of your Racket installation on > Windows, and use it to ensure that your DLL itself can resolve all its > dependencies. Once your DLL can pass this test, feed it to Racket. > > Ben > > ____________________ > Racket Users list: http://lists.racket-lang.org/users
I have used that little bit of checking code on the libraries mylib depends on and they all load, but if I compile mylib against them it fails that check. As far as I can tell, everything under the sun is 64- bit. I am halfway tempted to say that my Windows VM is haunted and wash my hands of it.
signature.asc
Description: PGP signature
____________________ Racket Users list: http://lists.racket-lang.org/users