CesatAGS Ответов: 1

Возвращает функцию int64 C++ в проект C#


Привет, я пишу dll, которая вводится в игру и возвращает мой localplayer и listArrayplayer на сервер. Ладно работай нормально
проект библиотеки dll кода:

__int64 RerturnLocalPlayer() {

    __int64 player = GetLocalPlayer_EX();// __Int64 GetLocalPlayer_EX is function that return my player
    return player;
}
в моем главном.h:
extern "C" {

	__declspec(dllexport) __int64 RerturnLocalPlayer();
}
в моем коде C# :
[System.Runtime.InteropServices.DllImportAttribute("my.dll", EntryPoint = "RerturnLocalPlayer",
        CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)]
        public static extern Int64 RerturnLocalPlayer();

// and try return:

 Int64 localp = NativeMemory.Read<Int64> (RerturnLocalPlayer());

 Console.WriteLine("LocalPlayer " + localp.ToString("X"));

проблема в том, что когда я запускаю свое приложение c#, моя консоль открывается и через 3 секунды закрывается, а иногда появляется ошибка: "
"Attempt to read or write to protected memory. Usually, this is an indication that another memory is damaged.".
"

Что я уже пробовал:

__int64 RerturnLocalPlayer() {

		__int64 player = GetLocalPlayer_EX();// __Int64 GetLocalPlayer_EX is function that return my player
		return player;
	}

в моем главном.h:
extern "C" {

	__declspec(dllexport) __int64 RerturnLocalPlayer();

}

        [System.Runtime.InteropServices.DllImportAttribute("my.dll", EntryPoint = "RerturnLocalPlayer",
        CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)]
        public static extern Int64 RerturnLocalPlayer();

// and try return:

 Int64 localp = NativeMemory.Read<Int64> (RerturnLocalPlayer());

 Console.WriteLine("LocalPlayer " + localp.ToString("X"));

1 Ответов

Рейтинг:
0

11917640 Member

Int64 localp = RerturnLocalPlayer();