Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2012, 10:33   #1
Robby73
Новичок
Джуниор
 
Регистрация: 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.
А вообще мне нужно в пакете симулинк матлаба запускать функцию обработки массивов (реализованная на С++).
Robby73 вне форума Ответить с цитированием
Старый 26.06.2012, 11:15   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а вы lib подключили?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.06.2012, 14:47   #3
Robby73
Новичок
Джуниор
 
Регистрация: 26.06.2012
Сообщений: 2
По умолчанию

Да библиотеку lib - libmx.lib подключил, поэтому в неведении что происходит
Robby73 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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