>-----Original Message----- >From: [EMAIL PROTECTED] [mailto:python-win32- >I have no idea what you are asking.
I want to run a Python shell from a DllMain() function. This is what I came up with so far: BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved) { //---- switch(ul_reason_for_call) { case DLL_PROCESS_ATTACH: { if (!Py_IsInitialized()) { BOOL res = AllocConsole(); //I was going to use the handles but I heard its not the way to do that //HANDLE OutHand = GetStdHandle(STD_OUTPUT_HANDLE); //HANDLE InHand = GetStdHandle(STD_INPUT_HANDLE); //HANDLE ErrHand = GetStdHandle(STD_ERROR_HANDLE); //Redirecting console freopen("CONOUT$","w",stdout); freopen("CONIN$","w",stdin); freopen("CONERR$","w",stderr); //Another way to redirect console //std::ofstream console_out("CONOUT$"); //std::ifstream console_in("CONIN$"); //std::ofstream console_err("CONOUT$"); //the printf prints on the new console after redirection printf("test"); //opening stdout and stdin files to pass to python for redirection FILE* afile = fopen("CONOUT$", "w+"); FILE* bfile = fopen("CONIN$", "w+"); Py_Initialize(); if (!Py_IsInitialized()) return(FALSE); //the bellow lines , instead of redirecting python crashes the dll PySys_SetObject("stdout", PyFile_FromFile(afile, "test","wb", fclose)); PySys_SetObject("stdin", PyFile_FromFile(bfile, "CONIN$","wb", fclose)); //these lines produces no output PyRun_SimpleString("print 'hello'\n"); PyRun_SimpleString("from IPython.Shell import IPShellEmbed\n"); PyRun_SimpleString("ipshell = IPShellEmbed()\n"); PyRun_SimpleString("ipshell()\n"); } break; } case DLL_THREAD_ATTACH: break; case DLL_THREAD_DETACH: break; case DLL_PROCESS_DETACH: { FreeConsole(); Py_Finalize(); break; } } //---- return(TRUE); } >Are you trying to give access to a Python shell inside of another >application? If so, then AllocConsole is not what you want. The >wxPython GUI framework includes several tools to do exactly that. They >put up an editable window, which is often more useful than a barebones >console. As you said all I was able to accomplish with AllocConsole was to redirect the printf not the python >If I misunderstand you, try asking your question again, and be specific. If it's not clear please don't hesitate to ask. Best regards, Mani _______________________________________________ python-win32 mailing list python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32