Python在DLL(c++)中的可视化研究

2024-10-04 03:21:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有visualstudio,我尝试在游戏中通过DLL注入来执行python。在

这是我的代码:

#include "windows.h"
#define MS_NO_COREDLL
#include <Python.h>
#include <detours.h>

#include "stdafx.h"
#include <string>
#include <sstream>
#include <iostream>
#include <fcntl.h>
#pragma comment(lib, "detours.lib")
using namespace std;

void pickupitem(){
    PyObject* args = PyTuple_New(0);
    PyObject* ret = PyObject_Call(PyObject_GetAttrString(PyImport_ImportModule("player"), "PickCloseItem"), args, NULL);
    double result = PyFloat_AsDouble(ret);
    Py_DECREF(ret);
    Py_XDECREF(args);
    //return result;
}
BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
        pickupitem();
        break;
    case DLL_THREAD_ATTACH:
        break;
    case DLL_THREAD_DETACH:
        break;
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}

它编译得很好,但是,我的“Winject”(程序注入DLL)得到了一个错误,没有提到任何问题。在

当我编辑代码并将其更改为:

^{pr2}$

我看了2倍的作品!但是winject仍然返回错误。在

我想这是visualstudio编译器的问题,你能告诉我出了什么问题吗?在

我已经安装了python2.7.6将folder/libs添加到链接器,并将/include添加到编译器。在

可以调试这个dll,知道问题在哪里吗?在

谨致问候。在


Tags: 代码pyreturnincludelibargsresultpyobject