Здравствуйте.
Написал простенькое консольное приложение на шарпах с библиотекой owen_io.dll.
Как видно из моих комментариев порт открывается и закрывается нормально, т.е. без ошибок (код возврата 0), а вот чтение параметра PV не удаётся (код возврата -104, что соответствует сетевой ошибке nErr). Грешу на PChar и string.Код:using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; namespace ConsoleApplicationOWENDLLImport { class Program { internal class OwenIO { [DllImportAttribute("owen_io.dll", EntryPoint = "OpenPort", CallingConvention = CallingConvention.StdCall)] public static extern int OpenPort(int n, int speed, int part, int bits, int stop, int vid); [DllImportAttribute("owen_io.dll", EntryPoint = "ClosePort", CallingConvention = CallingConvention.StdCall)] public static extern int ClosePort(); [DllImportAttribute("owen_io.dll", CharSet = CharSet.Unicode, EntryPoint = "ReadFloat24", CallingConvention = CallingConvention.StdCall)] public static extern int ReadFloat24(int adr, int adr_type, string command, float value, int index); } static void Main(string[] args) { int result; float value = 0; result = OwenIO.OpenPort(2, 8, 0, 1, 0, 1); Console.WriteLine(result); //возвращается 0 - успешно result = OwenIO.ReadFloat24(32, 0, "PV", value, 0); Console.WriteLine(result); //возвращается -104 - сетевая ошибка nErr Console.WriteLine(value); //возвращается 0, т.к. значение не изменилось result = OwenIO.ClosePort(); Console.WriteLine(result); //возвращается 0 - успешно Console.ReadLine(); } } }
Подскажите, пожалуйста, в чём может быть проблема. Заранее благодарен
З.Ы.: у меня owen_io.dll версии 1.2.0.17 - это последняя версия библиотеки?



Ответить с цитированием