易截截图软件、单文件、免安装、纯绿色、仅160KB

Python 3 输出重定向使用C/C++

Python 3 输出重定向使用C/C++
By:gddsky
 
目标
希望将Python 3的输出重定向到自定义的输出目标。
 
核心
Python使用sys.stdout、sys.stderr做输出目标,只要我们替换这两个值就可以重定向到我们自定义目标。替换的值的规则在Python的文档中sys (module)的sys.stdout上面说明只要添加一个write函数就可以了。像这样:
write(self, str)
我们只要在这个函数里面调用我们自己的输出函数就可以实现该目标了。
 
方案
在C++中写一个Python模块,并导入
在C++中利用PyRun_SimpleString建立一个PyObject去替换原始的sys.stdout、sys.stderr
搞定!!!
 
代码
模块定义部分代码(用python demo下的例子改写的)
static PyObject *console_write(PyObject *self, PyObject* args)
{
    if (s_pyConsoleNotify != NULL)
    {
        const char* pMsgString=0;
 
        if (!PyArg_ParseTuple( args, "s", &pMsgString ))
        {
            return NULL;
        }
        // 我们自己的输出函数
        myprint(pMsgString);
    }
 
    Py_INCREF( Py_None );
    return Py_None;
}
 
static PyMethodDef console_methods[] = {
    {"test",        console_test,   METH_NOARGS, "Return the meaning of everything."},
    {"write",   console_write,  METH_VARARGS, NULL},
    {NULL,      NULL}       /* sentinel */
};
 
static struct PyModuleDef consolemodule = {
    {}, /* m_base */
    "console_capi",  /* m_name */
    0,  /* m_doc */
    0,  /* m_size */
    console_methods, 


相关文档:

航空公司管理系统(VC++ 与SQL 2005)

系统环境:Windows 7
软件环境:Visual C++ 2008 SP1 +SQL Server 2005
本次目的:编写一个航空管理系统
      这是数据库课程设计的成果,虽然成绩不佳,但是作为我用VC++ 以来编写的最大程序还是传到网上,以供参考。用VC++ 做数据库设计并不容易,但也不是不可能。以下是我的程序界面,后面 ......

C语言回调函数使用

什么是回调函数?
  简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。
  为什么要使用回调函数?
  因为可以把调用者与被调用者分开。调用者不关心谁是被调用者,所有它需知道的,只是存在 ......

[C++]MySQL数据库操作实例

环境设置:
安装完MySQL之后,将安装目录中的include目录下的libmysql.lib文件拷到VS2008安装目录中的VC\lib\下,然后在 项目-选项-c/c++-常规 中的附加包含目录以及 链接器-常规 中的附加库目录中加入“c:\MySQL\include\”,并且在 链接器-输入 中的附加依赖项内添加“lib ......

python 中使用paramiko简单连接

在paramiko中使用用户名和密码通过sftp传输文件,不使用key文件。
import getpass
import select
import socket
import traceback
import paramiko
def putfile():
#import interactive
# setup logging
paramiko.util.log_to_file('demo.log')
username = username
hostname = hostname
......

python简单的可逆加密程序

简单加密,用python来写写。
#coding=utf-8
'''
Description: 可逆的加密与解密
Environment: python2.5.x
Author:idehong@gmail.com
'''
import os
import sys
class Code(object):
'''可逆的加密与解密'''

def __init__(self, key = "idehong@gmail.com"):
self.__src_key ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号