Hi everyone, I'm trying to create a small C++ program which embed R, but I'm having problems when I try to do it on Windows 64 bits. I have created a minimal reproducible example which is just the src/gnuwin32/front-ends/rtest.c file with the R_ReplDLLdo1() loop, the only difference is that I set the interactive mode to TRUE. Here is the cpp file: https://gist.github.com/anonymous/08b42e83c949e250f60b068d58a3ec51
When compiled in 32 bits, everything works: I enter R commands and no crash. When compiled in 64 bits (mingw64 and R x64 libs, and executed with R x64 in the PATH), everything works except when there is an error in R with a command entered by the user. Typically, entering "a" shows "Error: object 'a' not found" and then the program immediately crashes. Typing a stop() also trigger a crash. Code returned by the program is 0xC0000028, which is STATUS_BAD_STACK with the description: "An invalid or unaligned stack was encountered during an unwind operation". I'm not really good at C++ or makefile/compiler stuff, but I can't get it to work. I'm guessing this as to do with some longjumps to return to the prompt when there is an error but I don't know how to fix it. Compiling in 32 bits: P:/Rtools/mingw_32/bin/g++ -O3 -Wall -pedantic -IP:/R/R-3.4.3/include -c testr.cpp -o testr.o P:/Rtools/mingw_32/bin/g++ -o ./32.exe ./testr.o -LP:/R/R-3.4.3/bin/i386 -lR -lRgraphapp Results in: C:\test> 32.exe > a Error: object 'a' not found > # it works! But compiling in 64 bits: P:/Rtools/mingw_64/bin/g++ -O3 -Wall -pedantic -IP:/R/R-3.4.3/include -c testr.cpp -o testr.o P:/Rtools/mingw_64/bin/g++ -o ./64.exe ./testr.o -LP:/R/R-3.4.3/bin/x64 -lR -lRgraphapp Fails like this: C:\test> 64.exe > b <- 1 > b [1] 1 > a Error: object 'a' not found <Program crashes with 0xC0000028 error, no prompt displayed> I've tried lots of -std= flags, -DWIN64 -D_WIN64 and lots of other defines I could find or think of but with no luck. What is missing? Thanks, William. ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel