Ошибка при выполнении кода - C#

Узнай цену своей работы

Формулировка задачи:

"Вызов функции PInvoke "TestApp!TestApp.IM+INIManager::GetIString" разбалансировал стек. Вероятно, это вызвано тем, что управляемая сигнатура PInvoke не совпадает с неуправляемой целевой сигнатурой. Убедитесь, что соглашение о вызовах и параметры сигнатуры PInvoke совпадают с неуправляемой целевой сигнатурой." Возникает при попытке прочитать ini. Где тут ошибка?
MessageBox.Show(dev.GetIString("Profiles", "usb1"));
class IM
    {
        public class INIManager
        {
            [DllImport("kernel32.dll", EntryPoint = "GetPrivateProfileString")]
            private static extern int GetIString(string section, string key, string def, StringBuilder val, string path);
            [DllImport("kernel32.dll", EntryPoint = "WritePrivateProfileString")]
            private static extern int WriteIString(string section, string key, string str, string path);
            string ini = Environment.CurrentDirectory+"\\devices.ini";
            public string GetIString(string usb, string option)
            {
                StringBuilder val = new StringBuilder();
                GetIString(usb, option, null, val, ini);
                return val.ToString();
            }
            public void WriteIString(string usb, string option, string val)
            {
                WriteIString(usb, option, val, ini);
            }
        }
    }

Решение задачи: «Ошибка при выполнении кода»

textual
Листинг программы
StringBuilder val = new StringBuilder(100);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.143 из 5
Похожие ответы