When loading a dll built with VC++ 10 (for Windows) I get the error appended below.
I am currently using ROOT v5.34/04 (installed from the binary for VC++ 10) but I get the same error with earlier versions I tried back to v5.32
Any ideas what may be causing this?
Thanks in advance
Marios
ROOT 5.34/04 (tags/v5-34-04@48259, Jan 10 2013, 17:15:27 on win32)
CINT/ROOT C/C++ Interpreter version 5.18.00, July 2, 2010
Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }.
root [0] gSystem->Load(“C:/tests/test.dll”);
C:/tests/test.dll: Invalid access to memory location.
Load Error: Failed to load Dynamic link library C:/tests/test.dll
root [1]
Thanks Bertrand, but this cannot be my problem: I am building simultaneously several project dll’s in the same solution, all in release mode, all with VC++ 10 and the coresponding ROOT MSI. All of my project dll’s work fine, except for one. The problem is I don’t know how to debug this and trace where the crash occurs.
Well, I don’t know, its quite difficult to debug. It depends on what is inside the failing dll… or one of its dependencies (you can see the dependencies using Dependecy Walker, for example)
In release mode the dll build without errors or warnings, it’s only when I attempt to load it that I get the error. I tried to also build it in debug mode with the Debug version of ROOT. While building in debug mode when it gets to the custom build part where it builds the CINT dictionaries it throws a Visual C++ Debug Library error window with the following:
[b]Debug Error!
Program: C\root\ROOT_BIN\bin\rootcint.exe
HEAP CORRUPTION DETECTED: after Normal bloc (#12491) at 0x00E3FF08.
CRT detected that the application wrote to memory after the end of heap buffer.[/b]
Does this say anything to you? Is there any way to get to the code at the point where it crashes?