It's a bit unfortunate that the latest MSVCRT is apparently dependent on the system having .Net installed -- if it can't use those assembly DLLs when they're in the same directory as your executable, it's not doing "normal" .Net "resolve this assembly reference" work -- it's apparently doing something rather different / special. Perhaps you could find an MSVCRT version that's newer than 6 but not dependent on .Net. (The one the came with Visual Studio 2003, for example, might qualify.)
This is DLL hell in action, with a new twist. Ugh. Good luck... J. Merrill From: Opera Lover <[email protected]> To: [email protected] Date: 05/10/2010 11:19 AM Subject: Re: [Neko] SuspendThread problem (SHWX + Neko + GC.DLL) - Recompile Neko help needed Sent by: <[email protected]> Hi again J.Merrill, When I execute recompiled neko.exe in a command prompt (cmd.exe) it simply says: "The system cannot execute the specified program." (not quite verbose IMHO) Now, if I go to the event viewer, the error details are: Error, Event ID: 32 Description: Dependent Assembly Microsoft.VC90.CRT could not be found and Last Error was The referenced assembly is not installed on your system. Error, Event ID: 59 Description: Resolve Partial Assembly failed for Microsoft.VC90.CRT. Reference error message: The referenced assembly is not installed on your system. . So I think it does not work with simply copying the required DLLs in the same folder as the neko.exe (as in .NET, where this approach works). I also tried with Dependency Walker (a Visual Studio tool) to copy all the required DLLs: - msvcm90.dll - msvcp90.dll - msvcr90.dll So, I am afraid that I am back with the original problem... trying to recompile neko.exe with MSVCRT 6.0. Thanks for your help :-) On 07/05/2010 21:20, [email protected] wrote: What's the "cannot start" symptom that you see? You might be able to use Process Monitor (from the same source as Process Explorer) to determine that -- just as a possible example -- the version of MSVCRT that you put into your directory requires a matching ABCD.DLL that you'd also have to include in your directory, because it doesn't come with XP SP3. Process Monitor is not super-easy to use. If it's Neko.exe that can't start, set a Process Name filter to specify that, and don't leave it turned on for very long. (Turn it on, try running neko.exe, then turn it off and look at the accumulated info.) J. Merrill From: Opera Lover <[email protected]> To: [email protected] Date: 05/07/2010 06:50 AM Subject: Re: [Neko] SuspendThread problem (SHWX + Neko + GC.DLL) - Recompile Neko help needed Sent by: <[email protected]> Hi again, I tried that you said (putting DLLs in the same folder that recompiled Neko is), but I ended with a Neko.exe that can not start in a Windows XP SP3 clean environment (no .NET installed). So I think I will have to try the MSVCRT 6.0 route again... Any hint/help about that? Many thanks! On 05/05/2010 18:11, [email protected] wrote: IIRC, you're delivering your software on a CD. You should be able to include any version of MSVCRT that you want on the CD in the same directory as your other executables, and that's what will be used when the code runs. I hope that info is useful to you. (You might want to download Process Explorer from sysinternals.com. It will let you see what DLLs a process has loaded -- to confirm that the DLL you're delivering is the one that the process is loading.) J. Merrill From: Opera Lover <[email protected]> To: [email protected] Date: 05/05/2010 06:46 AM Subject: Re: [Neko] SuspendThread problem (SHWX + Neko + GC.DLL) - Recompile Neko help needed Sent by: <[email protected]> On 04/05/2010 14:05, Nicolas Cannasse wrote: > > You can try to recompile Neko + all neko libraries with your > VisualStudio, since you maybe don't have to use MSVCRT 6.0 > > Nicolas > Hi Nicolas, That is the problem, I need to target MSVCRT 6.0 because my app should not require users to install anything (I think that Windows XP shipped with that DLL). By the way, will I need to recompile also the Neko libraries? I though that I will be able to use their precompiled binaries (I though I only needed to comment the GC_use_DllMain() line in alloc.c). Can some of you already able to compile Neko for Windows please compile a Neko binary with this small change (using MSVCRT 6.0)? Many thanks. Regards -- Neko : One VM to run them all (http://nekovm.org) -- Neko : One VM to run them all (http://nekovm.org)
-- Neko : One VM to run them all (http://nekovm.org)
