我们正试图有一个简单的程序,将通信从一个cpp到python 这是我们的代码(为了简单而修改) #包括“iostream” #包括
using namespace std;
PyInterpreterState* _InterpState=NULL;
class APPNAME_PyLock
{
public:
/// Acquire the lock
APPNAME_PyLock(bool lock = true)
: _lock(lock)
{
cout<<"Inside APPNAME_PyLock () function CPlock1"<<endl;
if (_lock)
{
cout<<"CPlock2"<<endl;
_threadState = PyThreadState_New(_InterpState);
cout<<"CPlock3"<<endl;
PyEval_AcquireThread(_threadState);
cout<<"CPlock4"<<endl;
}
}
/// Release the lock
~APPNAME_PyLock()
{
if (_lock)
{
PyEval_ReleaseThread(_threadState);
PyThreadState_Clear(_threadState);
PyThreadState_Delete(_threadState);
}
}
private:
bool _lock;
PyThreadState* _threadState;
};
#ifdef __cplusplus
extern "C"
{
#endif
PyObject* pycall_Shutdown(PyObject* self, PyObject* args);
#ifdef __cplusplus
}
#endif
PyMethodDef _SessionMethods[] =
{
{(char *)"writeOutput", pycall_Shutdown, METH_VARARGS, (char *)"Output to standard output stream."},
{0, 0, 0, 0}
};
PyObject* pycall_Shutdown(PyObject* self, PyObject* args)
{
cout<<"I am form shutdown"<<endl;
return 0;
}
int main(int argc, char *argv[])
{
Py_Initialize();
PyObject* _SessionModule = 0;
PyEval_InitThreads();
cout<<"CP5"<<endl;
PyThreadState* threadState = PyThreadState_Get();
cout<<"CP5.1"<<endl;
_InterpState = threadState->interp;
APPNAME_PyLock();
cout<<"CP5.3"<<endl;
_SessionModule = Py_InitModule3((char *)"ttsession", _SessionMethods, (char *)"Built-in module to run TTServer.");
cout<<"CP7"<<endl;
PyEval_ReleaseThread(threadState);
cout<<"END OF EXECUTION\n\n\n";
Py_Finalize();
return 0;
}
这是我用来构建应用程序的批处理文件的内容
cl /c Try3.cpp /IC:\Python27\include
link /link -debug /OUT:"./lib/Try3run.exe" Try3.obj /LIBPATH:"c:/Python27/libs" python27.lib
cd /d %~dp0%
set PATH=%PATH%;%~dp0%lib
我使用的是python2.7.8(安装在c:\Python27文件夹中)
我在当前文件夹中有一个名为“lib”的文件夹。包含如下文件 python27.lib,python27\u d.lib.
我已将DLL文件夹和Lib文件夹从c:\Python27复制到当前文件夹中名为python的文件夹中
要运行文件,请将目录更改为lib,然后键入“Try3”运行.exe“
在获取锁之前,程序在函数APPNAME\u PyLock()的checkpoint3(CPlock3)处失败。你知道吗
我做错什么了吗?你知道吗
有什么办法可以让我摆脱这个麻烦吗
注意:我正在visualstudio命令提示符下运行此命令
目前没有回答
相关问题 更多 >
编程相关推荐