LabView 3.1: создание DLL в C с Dev-C + + и LabView называют

Здравствуйте, я собираюсь написать простой пример простой способ создания обнаружил DLL (Dynamic Link Libraries) в С и затем иметь возможность обратиться в LabView, пример поп "Hello World". Более проблема для меня, чтобы создать DLL (потому что единственное данной компиляции непосредственно в машинный код библиотеки фиксировано), для вызова функции C в LabView, как это легко сделать с помощью вызова библиотечных функций узла VI.

На National Instruments три страницы о том, как сделать звонок, создать файл C и построить DLL, я сделал первые два шага, а третий необходимые программы Microsft Visual C + + 6.0, что у меня есть, так что но, чтобы выявить шаги в этом направлении, я оставляю на страницу здесь в это время.

Тем не менее, я могу позволить вам создать правила для своих библиотек и бежать, но я надеюсь, вам понравится этот пример, чтобы понять весь этот вопрос о DLL. Я думаю, есть учебники, как сделать DLL с Дев, так что не претендую, что это одно, и потому, что я не читал еще ни и поэтому я думаю, я имею проблемы компиляции своих кодов. С заголовками. H. Def. Можете ли вы порекомендовать любые другие комментарии на ссылку, чтобы помочь создать DLL в C / C + + легко из любой программы, а затем некоторые, если LabView объясняет гораздо лучше.

  • Шаг 1: установлена ​​Dev-C + + и создание DLL

Пример, который я поставил это версия 4.9.9.2, вы можете увидеть, что доступно здесь .

Для создания DLL файл-> имя-> Project

Выберите DLL, выберите язык C и поместить название проекта такого HelloDll. Вы должны выйти из проекта два файла автоматически dllmain.cy dll.h. Если выбранный для C + + из этих двух arichivos но без примера Hello World.

. Архив C (я не заменил или первой строки):

/ * Замените "dll.h" с именем заголовок * /
# Include "dll.h"
# Include <windows.h>
# Включить stdio.h
Stdlib.h

DLLImport недействительным HelloWorld ()
{
MessageBox (0, "Hello World из DLL \ N!", "Привет", MB_ICONINFORMATION);
}

APIENTRY BOOL DllMain (HINSTANCE HINST / * Библиотека хэндл. * /,
DWORD причина / * Причина эта функция вызывается. * /
Защищены LPVOID / * Не используется. * /)
{
переключатель (причины)
{
DLL_PROCESS_ATTACH случае:
break;

DLL_PROCESS_DETACH случае:
break;

DLL_THREAD_ATTACH случае:
break;

DLL_THREAD_DETACH случае:
break;
}

/ * Возвращает TRUE в случае успешного завершения, FALSE в случае ошибки * /
return TRUE;
}

. H:

# IFNDEF _DLL_H_
# Определяем _DLL_H_

# Если BUILDING_DLL
# Определяем DLLImport __ declspec (dllexport)
# Остальное / * Не BUILDING_DLL * /
# Определяем DLLImport __ declspec (DllImport)
# Endif / * Не BUILDING_DLL * /

DLLImport недействительным HelloWorld (недействительными);

# Endif / * _DLL_H_ * /

Вот и все, теперь вам не нужно ничего писать, просто зайдите в Выполнить-> компиляции или Ctrl + F9 или цвет значка cudraditos выше левого и мы получили DLL. Может быть, он попросит вас сохранить проект. Dev и созданные файлы. С. Н, DLL будет сохранен в той же папке, или если вы указываете свое имя и проект-> Параметры проекта-> строительство вы можете изменить их.

  • Шаг 2: Создание VI

Вы берете новый ВП, перейдите на блок-схеме, и помещается в библиотеке вызова функции узла VI, можно найти в conectivity-> библиотеки и исполняемые файлы. И это, это так просто, но хорошо для RUN better'll работу положить в структуре в лицо, если правда, кнопка контролируемых логических, и все в цикле Loop, которыми можно управлять и останавливаться на ту же кнопку.

  • Шаг 3: Зов библиотечных функций узла Заполните

Он два раза в шестой или второй кнопки набора:

- Во имя библиотеки или Путь задается путь к DLL

- В зависимости от HelloWorld, и он будет писать (но она идет плохо, я думаю)

- Соглашения о вызове в C мы

- Параметр пустота, которую мы написали сами (то есть не возвращает)

- Тип недействительными.

И это все, ниже вид функции HelloWorld недействительным (недействительными); Если бы не функция типа VI возвращения ничего не изменится так, как вы можете подключить входы или выходы.

Это по перспективе и удачи.

Blogger сообщения Facebook WordPress E-mail Доля
Скачать PDF    Отправить статью в PDF формате   

17 Комментариев к "LabView 3.1: создание DLL в C с Dev-C + + и LabView вызов"

  1. yelinna говорит:

    Привет
    Я их библиотек с TurboExploer http://www.turboexplorer.com/ который является бесплатным, но весит 200 мегабайт. Вы также можете сделать со свободной компилятор Borland предложения (5.5).

    Привет!

  2. Кристина говорит:

    Большое спасибо! Я был очень полезен.

  3. Сезар Хименес говорит:

    Здравствуйте, что такое!

    Я хочу подключиться власти канон выстрел g9 cmaara и получить изображение через окно LabVIEW, видимо, мне нужна DLL файлы этого типа intefaces .... Можете ли вы помочь или дать мне несколько советов.

    Сезар Хименес Кальвильо.

  4. weeberp говорит:

    Привет Цезаря.
    Первое, что я вижу, это легче, ваша камера должна видеть его в качестве программного обеспечения веб-камеры или плагин можно увидеть в "Мой компьютер" в качестве веб-камеры, Если это так, что вы можете использовать почтовый индекс? Labview Видение 0.5: код простая камера USB
    и индекс указывает имя камеры должны быть выбраны.
    Если нет, то никакое программное обеспечение или не работает ваш USB кабель (который, конечно, хорошо соединяется) ищет универсальный драйвер, который будет служить в качестве веб-камеры, или программу для импорта фотографий напрямую с камеры ... Я не знаю, случай в том, что если вы видите видео через ПК с ним уверены, что указано в списке.
    Я не думаю, что легче найти (и тем более делать) DLL, которая содержит функцию, которая вызывает последовательность изображений, который выступает в качестве видео. Если вы обнаружите, как вы знаете, через узел вызова функции (выяснить, какие данные вы должны вызвать функцию или назад, если массив, если массив указателей, и т.д. ... для определения вызова).

  5. Уюни Kenjin Джо говорит:

    Ницца новое, как, используя библиотеку с тем же разработчика с lengauje сотрудничество с + +

  6. weeberp говорит:

    Ну, как и любой библиотеки, положить # include библиотеке (между треугольником и котировки на основе расположения файла, если в папку по умолчанию или нет) и уже, обратитесь к функции в программе.
    Кроме того, я обнаружил, что помещение только. C перед функции мы хотим экспортировать, когда мы определим функции сначала ключевое слово __ declspec (dllexport) уже публичную функцию, затем к кнопке, чтобы создать библиотеку DLL программе Мы utlizando для компиляции. Это ключевое слово может незначительно отличаться Я думаю, что из одной программы в другую, но Google быстро.

  7. Рэй говорит:

    Эй, эй, я могу сделать программу строитель и использовать его, как вы описали в LabVIEW 6.1? Я должен сделать программу в LabVIEW, но я считаю, это более сложная Я привык всегда использовать язык C

    Был бы весьма признателен мне может быть и речи!
    Заранее спасибо!

  8. weeberp говорит:

    Вы можете использовать любую программу, чтобы DLL, если вы знаете и что вы можете сделать. Чтобы доказать, могу ли я положить государственные функции, как я использую маленькую программу зависимые пакеты Уокер.
    И если в Labview 6.1 может сделать то же самое для вызова DLL, я думаю, что он меняет, как и вы, и место, начиная с версии 7, но у вас есть вызова функции узла вносились так. Также избегает узлов код интерфейса (CIN), который также служит для выполнения кода, а в том, что, сколько я читал, я не enterder как она работает.
    Также помните, что вы можете использовать C код или язык так же, как делает структуру узла структуры, но не могли бы поставить сюда входят или вызовы функций ... А с MathScrpt языке MATLAB узлов, но для этого я думаю, что нам нужно LabView, который включает в себя полный ...
    а вот руководство на английском языке, чтобы вызывать внешние кода в LabVIEW я 6.0 и 6.1, мы используем узел, как вы сказали раньше, но в долгосрочной, а также создания DLL с самого начала ...
    http://www.ni.com/pdf/manuals/370109a.pdf

  9. Мартин говорит:

    Я могу вам объяснить, немного лучше, как я могу перейти от языка С + + в LabVIEW?

  10. weeberp говорит:

    Пройдите пройти не проходит, вы можете добавить код добавляется.
    - Если есть функции, или прыжки, или ничего необычного структур, только если .. еще .. для ... то формула Node.
    - Если есть функции и более сложные программы создается DLL и вызвать ее с вызова функции узла вносились (вспомогательные инструменты »Импорт» Динамическая библиотека (DLL) может быть полезным.).
    Код узла интерфейс не знаю, как оно используется, вот пример: Пример CIN с LabVIEW и MS Visual C + + 5.0 .
    Внешний код для LabVIEW - CIN / DLL - отправная точка
    -. MathScript узла MATLAB код мой офис, вы должны иметь MATLAB.
    - Хотите узнать больше C? Я думаю, pasate в LabWindows CVI.

  11. Федерико говорит:

    привет exite хотели бы знать, если возможность наоборот, к которым я в том, что, если я могу получить то, что я делаю в Labview на C. мой вопрос в том, что, что я делаю в Labview я могу сделать его использования в микро-

  12. weeberp говорит:

    Теперь вопрос, который я сделал я несколько раз, но то, что я собрал до сих пор, следуя по FPGA является то, что я так не думаю.
    Чтобы запланировать FPGA, если все программы LabView и с учетом составить файл для конвертирования VHDL или тот, который принимает на FPGA (так же легко, как и для NXT), но только для 4 или 5 моделей и FPGA Модуль стоит много денег. Я думаю, для микро-версию ARM ¿? Я не помню, сделает то же самое.
    Столько, сколько вы можете получить логическое определен, кластер ... в C. т.е. при подключении кластера (например, имеющих более сложные вещи, и) для вызова функции библиотеки узла (сначала вы должны пойти и поставить в параметры, как тип Тип Adpat) вы даете вторую кнопку, чтобы просмотреть варианты имеют ВП и вы попали Создать. C файла. Ну, я говорю, вы получите только начинаются с заголовка файла. C, чтобы заполнить весь код.
    Как это всегда возможность LabView ХВН, но это, как программировать на С (не визуальный) и призывает LabVIEW из библиотеки интерфейс кнопок ВПП.

  13. Фабиан говорит:

    Здравствуйте,
    Я новичок в DLL вопросов, но мне интересно, если с точки зрения Matlab файлы MEX, я понял, похожие на DLL, я могу использовать их в LabVIEW. То есть, у меня есть код C д сложна и была использована в Matlab в виде файлов MEX, и я использую его в LabVIEW. Нет, если возможно, или если я лучше преобразовать этот код в DLL C с методами вы предложили.

  14. weeberp говорит:

    Для до сих пор никогда не читал ничего о DLL файлы Matlab MEX называется. но, глядя на NI.com с ключевыми словами "MATLAB MEX" оставил мне следующее:

    * VI ​​в MEX использованием NI LabVIEW математика Инструментарий интерфейса Вызов LabVIEW ВП от MathWorks MATLAB ® Инк программной среды

    * Здесь я считаю, что делает связь между Simulink и LabVIEW NI LabVIEW Simulation Инструментарий интерфейса

    Для использования MEX в LabView не оставил ничего так быстро, и я никогда не стал читать, чтобы соединиться с библиотеками LabView, но, конечно, я никогда не шел в противном случае, или из обычных файлов AutoCAD ... Так что если вы можете скомпилировать C любую программу и сделать Dll является решением.
    *

  15. Fernando_H говорит:

    Хорошо, что после этого периода удалось создать библиотеку DLL, которая будет вызвана в LabVIEW не имеет значения, какой компилятор вы используете, он открывает целый мир возможностей, но и увидеть мир проблема, особенно когда то, что мы делаем, это больше, чем "привет мир". Я упорно трудился, чтобы использовать библиотеки DLL составлен из искусственных сетей neurunales библиотек для использования в LabVIEW.
    Первая проблема, типы данных, когда вы нуждаетесь в библиотеках DLL, передаются в качестве параметров сложных типов данных как крупных структур C + +, задача немного огорчает дело немного с этими препятствиями, создать ссылку функций в С + +, которая может обрабатывать структуры данных C + + и LabVIEW сделать их более съедобными.
    Вторая проблема, управление памятью, иногда, особенно при запуске программ, вы склонны думать ", если вы собрали в том, что это хорошо", но если вы создаете контур в LabVIEW, где функция вызывается в тысячи раз в секунду , который находится в DLL, и если эта функция не делает правильное использование памяти, вы можете просто вернуть систему неустойчивой. Именно поэтому после того, как рад видеть, как РНК работал идеально, я упал в несколько секунд decepcioncuando все видел и остановился, как компьютер стал медленно. Я проверил весь код C + +, деструкторы, конструкторов, так называемые новые и удалять, но не нашли никаких проблем.

  16. weeberp говорит:

    Я согласен с вами, правда, как он не получает данные DLL в LabView, если вы проводите с размером, направленных на что-то другое ... вдруг делает трещину LabVIEW и закрывает внезапно. И медленно, ясно, по крайней мере в 8.6.1.

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

(обязательно)

(обязательно)

CAPTCHA Image
Обновить изображение
*