Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года


Подключение в С# DLL

Вы не вошли.

 Поиск | Регистрация | Вход 

Андрей
21.09.2009 12:28:34
#1

Гость

Подключение в С# DLL

Подключение в С# DLL

21.09.2009 12:31:03
#2

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Подключение в С# DLL

Приблизительно это выглядит так. Если Вы пользуетесь библиотекой lcomp.dll, то  к ней есть враппер wlcomp.dll в обычные С функции. И тогда на шарпе было что-то типа такого:

using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using System.Text;
namespace testapp
{
    unsafe public struct PLATA_DESCR
    {
        public fixed byte SerNum[9];
        public fixed byte BrdName[5];
        public byte Rev;
        public fixed byte DspType[5];
        public int Quartz;
        public ushort IsDacPresent;
        public fixed ushort Reserv1[7];
        public fixed ushort KoefADC[8];
        public fixed ushort KoefDAC[4];
        public fixed ushort Custom[32];
    }

    class Program
    {
    [DllImport("wlcomp.dll")]
        public static extern uint LoadAPIDLL(string dllname);
    [DllImport("wlcomp.dll")]
        public static extern unsafe uint FreeAPIDLL(uint *hDll);
    [DllImport("wlcomp.dll")]
        public static extern unsafe uint CallCreateInstance(uint* hDll, uint Slot, uint* Err);
    [DllImport("wlcomp.dll")]
        public static extern unsafe uint OpenLDevice(uint* hObj);
    [DllImport("wlcomp.dll")]
        public static extern unsafe uint CloseLDevice(uint* hObj);
    [DllImport("wlcomp.dll")]
        public static extern unsafe uint LoadBios(uint* hObj, string BiosName);
    [DllImport("wlcomp.dll")]
        public static extern unsafe uint PlataTest(uint* hObj);
    [DllImport("wlcomp.dll")]
        public static extern unsafe uint ReadPlataDescr(uint* hObj, PLATA_DESCR* pd);

        unsafe static void Main(string[] args)
        {
            uint hDll;
            uint hObj;
            uint Err;
            PLATA_DESCR pd;
            string s = "lcomp.dll";
            Console.WriteLine("Hello World!!!");
            hDll = LoadAPIDLL(s);
            Console.WriteLine(hDll.ToString());
            hObj = CallCreateInstance(&hDll, 0, &Err);
            Console.WriteLine(hObj.ToString());
            Console.WriteLine(Err.ToString());
            OpenLDevice(&hObj);
            Err = LoadBios(&hObj, "l783"); Console.WriteLine(Err.ToString());
            Err = PlataTest(&hObj); Console.WriteLine(Err.ToString());
            Console.WriteLine("Read FLASH");
            Err = ReadPlataDescr(&hObj,&pd); Console.WriteLine(Err.ToString());

            byte[] bt = new byte[9];
            for (int i = 0; i < 9; i++)
            {
                if (pd.SerNum[i] == 0) break;
                bt[i] = pd.SerNum[i];
            }
            Encoding ascii = Encoding.ASCII;
            Console.WriteLine(ascii.GetString(bt));
            CloseLDevice(&hObj);
            FreeAPIDLL(&hDll);
        }
    }
}

21.09.2009 12:31:54
#3

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Подключение в С# DLL

Полного шарпного описания на все функции и структуры естественно у меня нету...

Андрей
21.09.2009 12:49:10
#4

Гость

Re: Подключение в С# DLL

wlcomp.dll содержит только параметры платы. А есть какая нибудь Dll-ка под C#, которая помогает считывать и записывать инфу с АЦП.
С уважением Андрей!

Андрей
21.09.2009 12:50:44
#5

Гость

Re: Подключение в С# DLL

И второй вопрос есть ли у вас программный симулятор E14-440 чтобы мне настоящую плату не угробить )

21.09.2009 13:08:59
#6

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Подключение в С# DLL

wlcomp это С враппер на все функции lcomp. Симулятора нету. С платой ничего не случится если не вызывать WritePlataDescr те пзу не переписывать...

Андрей
21.09.2009 15:13:39
#7

Гость

Re: Подключение в С# DLL

Создал библиотеку dll .Net C++ но что то он мне её не подключает (

21.09.2009 15:46:51
#8

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Подключение в С# DLL

ну это я уже не знаю...

22.09.2009 09:58:28
#9

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Подключение в С# DLL

и еще - не путайцте lcomp.dll и lusbapi.dll... это разное