|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.06.2012, 10:33 | #1 |
Новичок
Джуниор
Регистрация: 26.06.2012
Сообщений: 2
|
dll in Visual Studio
Доброго времени суток господа программисты!
Возникает проблема при создании dll на Visual Studio 2010 с последующим применением dll в матлабе 2009. В этом деле я новичок, поэтому изучаю по книге Мартынова "Matlab 5.x Вычисления Визуализация программирование" Вот код программы взятый из учебника и реализованный в Visual Studio 2010 #include "mex.h" void MyDouble(int,int,double*,double*); void mexFunction( int nOut, /* number of expected outputs */ mxArray* pOut[], /* array of pointers to output arguments */ int nIn, /* number of inputs */ const mxArray* pIn[] /* array of pointers to input arguments */ ) { int m, n; double *pI, *pO; if( nIn == 0 ) mexErrMsgTxt("Input required"); if( nOut > 0 ) { if( !mxIsDouble(pIn[0])) { pOut[0]= mxCreateDoubleMatrix(1,1,mxREAL); *(mxGetPr(pOut[0])) = 1; } else { m = mxGetM( pIn[0] ); n = mxGetN( pIn[0] ); pOut[0]=mxCreateDoubleMatrix(m,n,mxREAL); pI = mxGetPr( pIn[0] ); pO = mxGetPr( pOut[0] ); MyDouble ( m, n, pI, pO); } } } void MyDouble( int m, int n, double* pI, double* pO) { int i; for( i=0; i < n*m; i++ ) pO[i] = 2*pI[i]; } Так как здесь используются функции из Matlab я подключил необходимые библиотеки. Но в процессе построения решения выходит ошибка 1>Построение начато 26.06.2012 10:15:10. 1>InitializeBuildStatus: 1> Обращение к "Debug\MyMexF2.unsuccessfulbuil d". 1>ClCompile: 1> Main.cpp 1>ManifestResourceCompile: 1> Для всех выходных данных обновления не требуется. 1>Link: 1> Создается библиотека D:\GRAM\MyMexF2\Debug\MyMexF2.lib и объект D:\GRAM\MyMexF2\Debug\MyMexF2.exp 1>Main.obj : error LNK2019: ссылка на неразрешенный внешний символ _mxCreateDoubleMatrix_730 в функции _mexFunction 1>D:\GRAM\MyMexF2\Debug\MyMexF2.dl l : fatal error LNK1120: 1 неразрешенных внешних элементов 1> 1>СБОЙ построения. 1> 1>Затраченное время: 00:00:00.71 ========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ========== Причем функция "mxCreateDoubleMatrix" прописана в подключаемой библиотеке а вот это mxCreateDoubleMatrix_730 честно говоря не понимаю откуда берется. #ifndef mxCreateDoubleMatrix # define mxCreateDoubleMatrix mxCreateDoubleMatrix_730 #endif Помогите разобраться! Может есть у кого опыт работы в создании dll для matlab. А вообще мне нужно в пакете симулинк матлаба запускать функцию обработки массивов (реализованная на С++). |
26.06.2012, 11:15 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
а вы lib подключили?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
26.06.2012, 14:47 | #3 |
Новичок
Джуниор
Регистрация: 26.06.2012
Сообщений: 2
|
Да библиотеку lib - libmx.lib подключил, поэтому в неведении что происходит
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Dll библиотека на Microsoft Visual Studio | D1kiy | Visual C++ | 1 | 13.04.2011 02:37 |
Не находит файл dll в Visual studio 2005 | coder_d | Visual C++ | 3 | 28.03.2010 21:10 |
Visual Studio Standard 2008 против Visual Studio Express 2008. Стоит ли покупать? | Casper-SC | Софт | 4 | 31.12.2009 11:46 |
VISUAL STUDIO 2008 defaul language - как переключить в VISUAL STUDIO 2008 язык программирования, использ | Эйнж | Общие вопросы C/C++ | 0 | 27.12.2009 20:39 |
Как скомпилировать dll в Visual Studio 2005 | kks | Visual C++ | 1 | 21.12.2009 16:51 |