Has anyone had any luck compiling a Geode .NET DLL that works on Windows 7?
Following the BUILDING.md I can generate a DLL successfully that works on
Windows 10, however if I take that same DLL to Windows 7 I get this error
when the DLL is loaded (picture is attached):

"The instruction at 0x77a3ce4b referenced memory at 0x00000050. The memory
could not be read."

The actual exception is a System.AccessViolationException in mscorlib.dll.

At this point the application does not proceed. I'm able to replicate it in
something as simple as a console application which references the DLL and
then tries to use some class from it (ie: CacheFactory f = new
CacheFactory()) in the main method. In my sample application it doesn't
specifically reference the memory instruction, just that: "Attempted to
read or write protected memory. This is often an indication that other
memory is corrupt".

I've tried a number things already including but not limited to:

1. Recompiling the same DLL on the Windows 7 machine itself (following the
same BUILDING.md instructions).

2. Installing VC++ 2015 redistributable (both x64 and x86 for good
measure). I subsequently installed 2008, 2010, 2012, 2013 and 2017
redistributables as well. I've also included the VC++ runtime DLLs in
various locations relevant to the application (just in case it wasn't
picking up from System32)

3. Retargeting CMake to build using VS2013 and VS2017 generators instead of
VS2015. VS2013 I couldn't get to compile, likely due to C++11 not being
supported/fully supported. VS2017 had some issues with auto&& pointers, but
I was at least able to get it to compile eventually. The same error occurs,
though.

When I put the DLL into Dependencies it's able to resolve all required
DLLs. My testing machine is a vanilla Windows 7 SP1 installation with .NET
4.7.2 installed (started with 4.5.2 and gradually upgraded as I tested out
various configurations).

Any help or advice would be greatly appreciated.

Thanks,
Jeffrey Yankowski

Reply via email to