![](/img/trans.png)
[英]How do I make C++/wxWidgets code accessible to a wxPython app?
[英]How to embed wxPython in wxWidgets (c++) app
我使用嵌入式wxPython-3.0处理MSVC ++ wxWidgets-3.0应用程序。
尽管我的系统已经安装了Python 2.7和wxPython -3.0,但我已经完成了以下操作:(因为我们需要为wxWidgets应用,Python和wxPython拥有相同的构建配置)
我已经以64位的DLL-Debug的形式下载并构建了wxWidgets,然后成功地以DLL-Debug模式(64位)运行了最小的项目示例。
我下载了Python2.7源代码并在Debug(64位)中使用了它,然后我将调试dll和libs复制到了python安装文件夹(\\ DLLs和\\ libs)。
我下载了wxPython3.0源代码并以DLL调试模式(64位)对其进行了调试,然后将调试dll和库复制到了python安装的文件夹(\\ Lib \\ site-packages \\ wx-3.0-msw \\ wx)中。
我从wxPython嵌入式示例中获取了Embedded.cpp,然后将代码从Embedded.cpp复制到wxWidgets示例最小应用程序的minimal.cpp中。
项目属性设置:
C / C ++:
General -- Additional include directories
C:\Python27\include
.\..\..\lib\vc_dll\mswud
.\..\..\include
连结器:
General -- Additional library directories
C:\Python27\libs
D:\Nuvsoft27\newpy\wxWidgets-3.0.0\lib\vc_dll
Input -- Additional dependncies
wxmsw30ud_core.lib
.
.
.
Python27_d.lib
系统环境变量。
PATH -- D:\Nuvsoft27\newpy\wxWidgets-3.0.0\lib\vc_dll
PYTHONPATH -- C:\Python27;C:\Python27\Lib\site-packages\wx-3.0-msw
问题:
它在wxPyCoreAPI_IMPORT()函数中失败,返回false。
您能帮我解决这个问题吗,我做错了什么吗?
您可以在此处看到调用堆栈 :
wxPyCoreAPI_IMPORT() -->
(wxPyCoreAPI*)PyCObject_Import("wx._core_", "_wxPyCoreAPI") -->
PyImport_ImportModule(module_name) --> PyImport_Import(pname) -->
PyObject_CallFunction(import, "OOOOi", module_name, globals, globals, silly_list, 0, NULL); -->
call_function_tail(callable, args) --> PyObject_Call(callable, args, NULL) -->
PyCFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) -->
builtin___import__(PyObject *self, PyObject *args, PyObject *kwds) -->
PyImport_ImportModuleLevel(char *name, PyObject *globals, PyObject *locals, PyObject *fromlist, int level) -->
import_module_level(name, globals, locals, fromlist, level) -->
load_next(parent, level < 0 ? Py_None : parent, &name, buf, &buflen); -->
import_submodule(mod, p, buf);
在上面的函数中,他们正在检查模块,如果mod == Py_None,则返回NULL,然后输入NULL并返回NULL。
您可能还需要在PYTHONPATH上使用c:\\ Python27 \\ Lib \\ site-packages \\ wx-3.0-msw。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.