ПредишенСледващото

Изкачих се по проблема. Matlab е необходимо да се комбинират сила и интерфейс Visual C ++ в. Необходимо е, че полученият софтуер работи на компютри, в които не е инсталиран Matlab. (Предварителният наведнъж, че строителният проект, за да освободите версия все още е твърде рано 🙂).

Poryskav сайта Matlab разработчиците да научат, че тези системи могат да се сприятеляват по три начина:

  1. Създаване на Matlab независим заявление и го включете в C ++;
  2. Използвайте Matlab търсачки (исках да опитам този метод, обаче, не е на разходка по-късно намерен на уебсайта на разработчиците, че тази функция нови версии на Matlab отстранени по неизвестни причини за мен лично ..);
  3. Създаване на динамична връзка библиотека (DLL) и след това да го използвате в C ++;

Третият начин да отидем, защото това е най-логичното.

Учим се малко за Matlab. Имам нещо с него, преди университета работеше толкова бързо си спомни всичко. И за начинаещи ще даде най-основните:

В Matlab, можете да напишете така наречените скриптове и функции. Те се различават помежду си по принцип. Функциите могат да бъдат наречени от други функции и скриптове - не. Ето защо, когато се съставя DLL функция трябва да се използва вместо скриптове!

Създаване на проста функция: м-файл. изчисляване задължително фиксирана стойност.

функция S = синус ()
S = грях (2);

Натиснете F5 и се насладете на стойност АНО = 0,9093 в Command Window. Работи !!

За да започнете, трябва да конфигурирате Matlab Compiler. Описания за настройване достатъчно, така че няма да обърнат внимание на това. По-добре е да се отиде по-далеч, за да се разбере.

В полето за команда въведена команда Deploytool и ние натиснете Enter. Ние получите нещо подобно:

Ние натиснете върху иконата на нов проект, изберете C ++ Споделена библиотека

В долната част, въведете име (аз препоръчвам да го направи, в противен случай рискувате да се загуби) и натиснете OK

Ние виждаме пред нас три папки. Сега ние интерес Exported функции. За да добавите нашия м-файл, чието име завършва с синус и ние натиснете върху натрупването ().

Изчакайте, докато се съберат библиотека. Нямаше намерение много бързо. Това е време да се отпуснете.

Тук се събраха нашата библиотека. Влизаме в папката на проекта и да видим две татковци: / разпределен и / SRC. Лесно е да се отгатне, че ние се интересуваме от първия.

В папката, намери пет файлове. readme.txt не ни интересува изобщо. Полезна дискови изображения там обикновено не пиша)))

* .dll, * .lib, * .h - това са файловете, които ще работят.

Това е време да се направи проекта от Visual C ++.

Обикновено в книгите написани създаване на проекти в рамките на конзолата. Ходим веднъж с нож върху резервоара и да се създаде прилагането MFC. Нека това интерактивен (това е така, както аз исках).

Най трудност възниква при създаването на проекта. Тъй като кодът работа - примитивен невъзможно.

Първо се свържете с всички необходими файлове (получени от библиотека с з-ник).

Там виждаме ред:

#include "mclmcrrt.h"
#include "mclcppclass.h"

Тези файлове са vpapke с Matlab: ... \ MATLAB \ ученик \ включва \

Копирайте ги в нашия проект и добавете: Проект-> Добавяне към проекта -> Файлове

След това, ние се опитваме да я компилирате. Нищо подобно! Търсите повече файлове. Очакваме в името си в грешка и след това се копира и се добавя към проекта. Там не са много))

След всичко това, заедно продължаваме Alt + F7 и да започне най-трудно: настройката на проекта. От тази фаза зависи от успеха на събитието.

Tab Link-> Input. В Допълнителна библиотека Path напишете директорията от Matlab: ... \ MATLAB \ ученик \ ИЪ \ win32 \ Microsoft \. В него се разказва компилаторът за допълнителни начини за търсене на необходимите библиотеки.

И настройките posledniyetap. Отидете в раздела Resorse където в Допълнителния Ресурс запис matlabovskuyu папка: ... \ MATLAB включват \ \ ученик \.

Всичко. Проектът е настроено

Обработка ще изглежда по следния начин (в много опростена форма, отстранени всички проверки за библиотеки, валидността на ценности и т.н.):

sinWPInitialize (); // Инициализиране библиотека
Int Z = 1; // Initialize променлива
mwArray ZZ (0); // Създаване на обект mwArray
синус (Z, ZZ); // изчисли синус. (Zz - инча

Клас mwArray - клас комуникация между библиотеката и заявлението. Той е описан достатъчно подробно за помощ matlabovskomu компилатор.

На СИМ, може би, всичко! Събиране и се наслаждавайте!

Пример за добре, благодаря!

Всичко е готово.
VC ++ 6.0 грешки писане
C: \ Program Files \ Microsoft Visual Studio \ myprojects \ MATLAB \ MATLAB \ mclmcrrt.h (140). грешка C2061: синтактична грешка. идентификатор "REFCLSID"
C: \ Program Files \ Microsoft Visual Studio \ myprojects \ MATLAB \ MATLAB \ mclmcrrt.h (161). C2065 грешка: "REFCLSID". недеклариран идентификатор
C: \ Program Files \ Microsoft Visual Studio \ myprojects \ MATLAB \ MATLAB \ mclmcrrt.h (161). грешка C2146: синтактична грешка. липсва ")" пред идентификатор "CLSID"
C: \ Program Files \ Microsoft Visual Studio \ myprojects \ MATLAB \ MATLAB \ mclmcrrt.h (163). грешка C2059: синтактична грешка. ")"
C: \ Program Files \ Microsoft Visual Studio \ myprojects \ MATLAB \ MATLAB \ mclmcrrt.h (171). грешка C2061: синтактична грешка. идентификатор "REFCLSID"
C: \ Program Files \ Microsoft Visual Studio \ myprojects \ MATLAB \ MATLAB \ mclmcrrt.h (184). C2065 грешка: "REFGUID". недеклариран идентификатор
C: \ Program Files \ Microsoft Visual Studio \ myprojects \ MATLAB \ MATLAB \ mclmcrrt.h (184). грешка C2146: синтактична грешка. липсва ")" пред идентификатор "GUID"
C: \ Program Files \ Microsoft Visual Studio \ myprojects \ MATLAB \ MATLAB \ mclmcrrt.h (184). грешка C2182: "mclGUIDtochar_proxy". незаконно използване на тип "нищожен"
C: \ Program Files \ Microsoft Visual Studio \ myprojects \ MATLAB \ MATLAB \ mclmcrrt.h (184). грешка C2059: синтактична грешка. ")"
C: \ Program Files \ Microsoft Visual Studio \ myprojects \ MATLAB \ MATLAB \ mclmcrrt.h (191). грешка C2146: синтактична грешка. липсва ")" пред идентификатор "CLSID"
C: \ Program Files \ Microsoft Visual Studio \ myprojects \ MATLAB \ MATLAB \ mclmcrrt.h (193). грешка C2059: синтактична грешка. ")"
C: \ Program Files \ Microsoft Visual Studio \ myprojects \ MATLAB \ MATLAB \ mclmcrrt.h (200). грешка C2146: синтактична грешка. липсва ")" пред идентификатор "CLSID"
C: \ Program Files \ Microsoft Visual Studio \ myprojects \ MATLAB \ MATLAB \ mclmcrrt.h (200). грешка C2182: "mclCLSIDtochar_proxy". незаконно използване на тип "нищожен"
C: \ Program Files \ Microsoft Visual Studio \ myprojects \ MATLAB \ MATLAB \ mclmcrrt.h (200). грешка C2059: синтактична грешка. ")"
C: \ Program Files \ Microsoft Visual Studio \ myprojects \ MATLAB \ MATLAB \ mclmcrrt.h (214). грешка C2146: синтактична грешка. липсва ")" пред идентификатор "CLSID"
C: \ Program Files \ Microsoft Visual Studio \ myprojects \ MATLAB \ MATLAB \ mclmcrrt.h (216). грешка C2059: синтактична грешка. ")"
C: \ Program Files \ Microsoft Visual Studio \ myprojects \ MATLAB \ MATLAB \ mclmcrrt.h (224). грешка C2061: синтактична грешка. идентификатор "REFCLSID"

Вие имате някакви синтактични грешки. проверете внимателно

Т.е. за коригиране на mclmcrrt.h заглавния файл?
Защо има някакви грешки?

Най-вероятно вие не сте копирали всички необходими файлове.

Zakomentil линия
// # включват «mclmcrrt.h»
// # включват «mclcppclass.h»
Той пише грешка
Съставяне на ...
matlab.cpp
Свързва се ...
new_sposob.dll. фатален LNK1136 грешка: невалиден или повреден файл
Грешка при изпълнението на link.exe.

И как участва DLL файл. Когато е поставена, и което е предписано да го пътя?

за Flexx02
I свързан. Matlab компилатор не поддържа новите версии на компилатори Borlandovyh. Продължете, както следва:
1) за създаване DLL в Visual C ++ (подходящ свободен Express версия), който е статично свързан създаден Matlab'om DLL (по същия начин, както е описано тук). Функциите на нов DLL да изпълнява функция на предаване на данни в стандартната видове C mwArray и инициират функции на DLL, създаден от Matlab.
2) В проекта на C ++ Builder динамично зареждаеми библиотека е създадена за VC

Всички проблеми се решават много по-лесно да се използва за .NET DLL връзки с Matlab, и с тях много по-лесно да работят.
Ако някой ще бъде подобен проблем, аз ви съветваме да използвате .NET

Помогнете моля, имам няколко въпроса:
- независимо дали на околната среда се нуждае от MCR с кола, ако мога да генерирам DLL и след това ще се използва в приложение Б на Linux
- Направих изпълнимия файл и да го ползвате за Linux - всичко работи на една машина, която работи с графична библиотека. Но е необходимо да се започне на система, където няма графики, но това MCR искания за стартиране. Как да се каже, MCR, че прилагането на конзолата? Всички са се опитали - не работи.
Може ли някой да помогне?

Подкрепете проекта - споделете линка, благодаря!