Crashes, how? Try running inside a debugger to see where it crashes, or at
least put a few printf.
You didn't test for the fopen result; are you sure "test.py" exists in the
current directory at the time you run it?
Ok, so I assumed that the file, if supplied without a path, would use
current working directory, which was evidently a false assumption. I
put in an if statement to check to see if the pointer was null which
it was. So I fully qualified the path in the test file. Now it
throws an unhandled exception when it goes to execute the line with
PyRun_SimpleFile. The following code yields the errors after it.
#include <Python.h>
int main(int argc, char* argv[])
{
FILE* fp = fopen("c:\\Patches\\Test\\Debug\\test.py","w");
if(fp == NULL)
printf("error");
Py_Initialize();
PyRun_SimpleFile(fp,"test.py");
Py_Finalize();
return 0;
}
"First-chance exception at 0x77d2dbba in Test.exe: 0xC0000005: Access
violation writing location 0x00000014.
Unhandled exception at 0x77d2dbba in Test.exe: 0xC0000005: Access
violation writing location 0x00000014.
First-chance exception at 0x77d2dbba in Test.exe: 0xC0000005: Access
violation writing location 0x00000014.
Unhandled exception at 0x77d2dbba in Test.exe: 0xC0000005: Access
violation writing location 0x00000014."
In the debug output.
This is the call stack (the first line is where execution halted).
Test.exe!main(int argc=1, char** argv=0x006d1b88) Line 9 + 0x15 bytes
Test.exe!__tmainCRTStartup() Line 586 + 0x19 bytes
Test.exe!mainCRTStartup() Line 403
(There is more after this, but it goes back to system calls and
execution is halted here so I thought this was relevant).