Вызов функции PInvoke разбалансировал стек. Дедик NFS Most Wanted - C#
Формулировка задачи:
Пишу дедик игры NFS Most Wanted.
Идой посмотрел функции. StartServer(char *, int, int, int)
Делаю так.
Вываливается ошибка: Вызов функции PInvoke "ConsoleApplication1!ConsoleApplication1.Program::StartServer" разбалансировал стек. Вероятно, это вызвано тем, что управляемая сигнатура PInvoke не совпадает с неуправляемой целевой сигнатурой. Убедитесь, что соглашение о вызовах и параметры сигнатуры PInvoke совпадают с неуправляемой целевой сигнатурой.
Наверно из-за того что первый аргумент должен быть char *
Только не знаю как как этот char * в коде прописать.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Runtime.InteropServices; namespace ConsoleApplication1 { class Program { [DllImport("server.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern void StartServer(string Name, int p1, int p2, int p3); static void Main(string[] args) { StartServer("Server", 1, 1, 1); Console.ReadLine(); } } }
Решение задачи: «Вызов функции PInvoke разбалансировал стек. Дедик NFS Most Wanted»
textual
Листинг программы
[DllImport( @"server.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl )] [return: MarshalAs( UnmanagedType.I1 )] static extern bool StartServer ( [In] string Name, [In] int p1, [In] int p2, [In] int p3 );
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д