Показано с 1 по 7 из 7

Тема: owen_io.dll + C# = проблема???

  1. #1

    По умолчанию owen_io.dll + C# = проблема???

    есть программа написанная на VS2008, задача считать данные от прибора МВА-8. Коммутация осуществляется сначала через RS-485. Зачем через преобразователь интерфейсов заводится на COM порт.
    Конфигуратор МВА-8 прибор видит, данные из него читает, то есть все настроено.
    В программе пытаюсь подцепить dll как внешную и выводится сообщение об ошибке в момент открытия COM порта:
    Была сделана попытка загрузить программу, имеющую неверный формат. (Исключение из HRESULT: 0x8007000B).
    Более подробная информация из справки VS:
    Убедитесь, что образ файла — это допустимая управляемая сборка или модуль.
    Это исключение возникает при передаче неуправляемого кода в Load для загрузки.

    Дополнительные сведения для пользователей Visual Basic см. в разделе Устранение неполадок взаимодействия.

    Убедитесь, что введен правильный путь для сборки.
    Если используется относительный путь, проверьте правильность текущего каталога.


    Код где я подключаю dll:
    [DllImport("owen_io.dll", CharSet = CharSet.Auto, SetLastError = true)]
    private static extern int OpenPort(int n, int speed, int parity, int bits, int stop, int converter);
    [DllImport("owen_io.dll", CharSet = CharSet.Auto, SetLastError = true)]
    private static extern int ClosePort();
    [DllImport("owen_io.dll", CharSet = CharSet.Auto, SetLastError = true)]
    private static extern int ReadIEEE32(int adr, int adr_type, char[] command, out float value,out int time, int index);


    Что я не так делаю? Может кто то с таким сталкивался?
    Насколько я понимаю проблема в запуске неуправляемого кода из .Net

  2. #2

    По умолчанию

    Вот все тут (
    http://www.owen.ru/forum/showthread.php?t=7558) предлагают эти их библиотеки (по возможности) не использовать.

    И написать все самому с исп исходных текстов выше по ссылке.
    Оказалось это дело пары дней.
    Только я делал для modbus.

    http://www.owen.ru/forum/showthread.php?t=7621

  3. #3

    По умолчанию

    owen_io.dll + C# = отлично работает

    http://owen.ru/forum/showpost.php?p=27875&postcount=26

    и не забудьте положить owen_io.dll рядом с вашей программой.

  4. #4

    По умолчанию

    Гоша, вот там никто такого не советует. Первый совет разработчикам под Windows -- использовать библиотеку.

  5. #5

    По умолчанию

    Цитата Сообщение от Дмитрий Егоренков Посмотреть сообщение
    owen_io.dll + C# = отлично работает

    http://owen.ru/forum/showpost.php?p=27875&postcount=26

    и не забудьте положить owen_io.dll рядом с вашей программой.
    Так и делаю, выводит сообщение о том чтобы я проверил действительно ли я подключанию управляемую сборку??? какая тут управляемая сборка если заранее использую библиотеку написанную на C++???

  6. #6

    По умолчанию

    могу посоветовать удалить все версии owen_io.dll с диска и скачать свежую версию с сайта. и еще проверить, что ваше приложение не 64х-битное. .net считает, что с dll что-то не так.

    ну и вообще-то в сообщении написано "Была сделана попытка загрузить программу, имеющую неверный формат. (Исключение из HRESULT: 0x8007000B)."

    а в справке "Убедитесь, что образ файла — это допустимая управляемая сборка или модуль. Это исключение возникает при передаче неуправляемого кода в Load для загрузки."

  7. #7

    По умолчанию

    Цитата Сообщение от Дмитрий Егоренков Посмотреть сообщение
    могу посоветовать удалить все версии owen_io.dll с диска и скачать свежую версию с сайта. и еще проверить, что ваше приложение не 64х-битное. .net считает, что с dll что-то не так.
    Спасиба все откомпилилось. Приложение запустилось. Сейчас буду дальше тестить.

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •