关于VC++6.0 嵌入 使用python,链接错误的问题
一颗仙豆 2015-10-09 11:16:16 #include "stdafx.h"
#include <Python.h> //<Python.h>放在"stdafx.h"前面包含就出错,何解? 2012_05_17
#include "../public/CommonDef.h"
#include "../public/LogEvent.h"
/*//////////////////////////////////////////////////////////////////////////
Global variable
//////////////////////////////////////////////////////////////////////////*/
CLogEvent g_logEvent;
HANDLE g_hFile = INVALID_HANDLE_VALUE;
HANDLE g_hThread = NULL;
SOCKET g_sTcp = INVALID_SOCKET;
/*//////////////////////////////////////////////////////////////////////////
Python function
//////////////////////////////////////////////////////////////////////////*/
static PyObject* OpenLogFile(PyObject *self, PyObject *args);
static PyObject* OpenNetLogFile(PyObject *self, PyObject *args);
static PyObject* WriteLog(PyObject *self, PyObject *args);
static PyObject* StartServer(PyObject *self, PyObject *args);
static PyObject* StopServer(PyObject *self, PyObject *args);
static PyObject* IsEmpty(PyObject *self, PyObject *args);
static PyMethodDef bfMethods[] =
{
{"OpenLogFile", OpenLogFile, METH_VARARGS, "OpenLogFile"},
{"OpenNetLogFile", OpenNetLogFile, METH_VARARGS, "OpenNetLogFile"},
{"WriteLog", WriteLog, METH_VARARGS, "WriteLog"},
{"StartServer", StartServer, METH_NOARGS, "StartServer"},
{"StopServer", StopServer, METH_NOARGS, "StopServer"},
{"IsEmpty", IsEmpty, METH_NOARGS, "IsEmpty"},
{NULL, NULL, 0, NULL}
};
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch(ul_reason_for_call) {
case DLL_PROCESS_ATTACH:
break;
case DLL_PROCESS_DETACH:
break;
default:
break;
}
return TRUE;
}
DWORD WINAPI LogEventSeverThread(LPVOID lpParamter)
{
char szRead[RESOURSE_SIZE] = {0};
DWORD dwWrite;
if (g_hFile == INVALID_HANDLE_VALUE && g_sTcp == INVALID_SOCKET) {
return -1;
}
while (TRUE)
{
if (g_logEvent.Read(szRead, RESOURSE_SIZE))
{
//printf("g_logEvent.Read success\n");
if (g_hFile != INVALID_HANDLE_VALUE) {
::WriteFile(g_hFile, szRead, strlen(szRead), &dwWrite, NULL);
::WriteFile(g_hFile, "\r\n", 2, &dwWrite, NULL);
}
if (g_sTcp != INVALID_SOCKET) {
::send(g_sTcp, szRead, strlen(szRead), 0);
::send(g_sTcp, "\r\n", 2, 0);
}
}
}
return 0;
}
Linking...
Creating library Release/ALogEvent.lib and object Release/ALogEvent.exp
ALogEvent.obj : error LNK2001: unresolved external symbol _Py_BuildValue
ALogEvent.obj : error LNK2001: unresolved external symbol _PyArg_ParseTuple
ALogEvent.obj : error LNK2001: unresolved external symbol _Py_InitModule4
../Bin/ALogEvent.pyd : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.