dramcio 0 Zgłoś post Napisano Styczeń 27, 2014 (edytowany) Witajcie. Na wstępie panie moderatorze, jeżeli wybrałem zły dział proszę przenieść mój temat - myślałem że ten będzie odpowiedni. ------ Chcę w grze wykonać funkcje pythona z mojego dll które wstrzykuje. Mój kod : #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; } Gra to METIN2 - tak tak, ale to jedyna gra w która wiem ,że wykorzystuje pythona. 1. Dodając py_initalize - następuje crash gry. 2. Jak zmieniam ATTACH na : case DLL_PROCESS_ATTACH: MessageBoxA(NULL, (LPCSTR) "WORK!", (LPCSTR) "YES !", NULL); pickupitem(); break; to po wstrzyknięciu otrzymuje napis 2 razy WORK!. Myślę że to jest kwestia konfiguracji mojego środowiska (VISUAL STUDIO). Mimo tego ,że dll kompiluje sie poprawnie (poza wpisami c:/python27/libs do linkera oraz c:/python27/include do compilera nic nie ruszałem) Myślę że tutaj znajdzie się osoba któa będzie wstanie mi pomóc. Bo mi pomysły już się skończyły ;x (to ,że funkcja player.PickCloseItem istnieje - to nie mam wątpliwośći) Pozdrawiam. Edytowano Styczeń 27, 2014 przez dramcio (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach