.版本 2
.支持库 spec
.子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行
.局部变量 mothod, PyMethodDef
.局部变量 创建结果, 整数型
.局部变量 错误类型, 整数型
.局部变量 错误信息, 文本型
.局部变量 错误信息2, 整数型
.局部变量 错误信息3, 文本型
.局部变量 错误堆栈, 整数型
Py_SetPythonHome (“C:\Python36”)
Py_SetProgramName (“C:\Python36”)
' Py_运行代码 (“import os, time, sys, getopt, string, random”)
' Py_运行代码 (“sys.path.append('./')”)
' Py_运行代码 (“sys.path.append('C:/Python36/')”)
' Py_运行代码 (“sys.path.append('C:/Python36')”)
mothod.ml_name = “wnxd”
mothod.ml_meth = __cdecl (&wnxd)
mothod.ml_flags = 1
mothod.ml_doc = “this is python_e ddddddd”
加入成员 (mothods, mothod)
wnxd.ob_refcnt = 1
wnxd.m_name = “python_e”
wnxd.m_doc = “wnxd - python_e222222”
wnxd.m_size = -1
wnxd.m_methods = PyMethodDef_Array (mothods)
创建结果 = PyImport_AppendInittab (“python_e”, &PyInit_python_e)
Py_Initialize ()
' 创建结果 = PyInit_python_e ()
错误信息2 = 取变量地址 (错误信息)
PyErr_Fetch (错误类型, 取变量地址 (错误信息), 错误堆栈)
PyErr_Print ()
创建结果 = PyImport_ImportModule (“wnxd_e”)
错误信息2 = 取变量地址 (错误信息)
PyErr_Fetch (错误类型, 取变量地址 (错误信息2), 错误堆栈)
PyErr_Print ()
' 错误信息2 = 错误信息2 + 80
错误信息3 = 到文本 (取变量地址 (错误信息2))
.如果真 (创建结果 = 0)
' Py_运行代码 (“print('python error')”)
调试输出 (“Py_模块_加载 错误!”)
标准输入 ()
返回 (0)
.如果真结束
' Py_运行代码 (“import python_e”)
' Py_运行代码 (“print(python_e.__name__)”)
' Py_运行代码 (“print(dir(python_e))”)
' Py_运行代码 (“print(python_e.wnxd('ceshi'))”)
标准输入 ()
返回 (0) ' 可以根据您的需要返回任意数值
.子程序 PyInit_python_e, 整数型, 公开
返回 (PyModule_Create (wnxd))
.子程序 wnxd, 整数型, , PyObject指针
.参数 self, 整数型, , PyObject指针
.参数 args, 整数型, , PyObject指针
.局部变量 m, 文本型
.局部变量 str, 整数型, , "0"
加入成员 (str, 0)
PyArg_ParseTuple (args, “s”, str)
m = 指针到文本 (str [1])
标准输出 (, m + #换行符)
清除数组 (str)
加入成员 (str, GetLP_String (“wnxd-python_e”))
返回 (Py_BuildValue (“s”, str))
.子程序 __cdecl, 子程序指针
.参数 子程序指针, 子程序指针
.局部变量 lp, 整数型
.局部变量 byte, 字节集
lp = 到整数 (子程序指针)
.循环判断首 ()
byte = 指针到字节集 (lp, 3)
lp = lp + 1
.循环判断尾 (byte ≠ { 91, 95, 94 })
lp = lp + 2 ' 本源码来自三叶资源网(www.sanye.cx)
VirtualProtect (lp, 1, 64, 0)
写到内存 ({ 195 }, lp, )
返回 (子程序指针)