>Это называется name mangling. Компилятор С++ добавляет нехорошие символы для того, чтобы закодировать типы параметров и возвращаемого результата. Типичная беда всех С++ компиляторов. Впервые столкнулся с этим на VS 2005, т.е. VC++ 8
>Совет — если не требует сам МатЛАБ не требует С++ интерфейса, то все фунции экспорта должны быть чисто С — используй конструкции:... Не требует. Попробовал. Результат тот же. Dll-ка спокойно создается, а МатЛАБом не признается.
>Можешь привести пример, как у вас описаны функции при экспорте? Описаны очень тупо.
![:D :D](http://s.wrk.ru/s/biggrin.gif)
dll-ка экспортирует только одну функцию, её имя и набор аргументов жестко заданы МатЛАБовским стандартом.
Стало быть, я делаю MyFun.def, в котором пишу:
LIBRARY MyFun.dll
EXPORTS mexFunction
А сама функция в исходнике имеет продиктованный МатЛАБом вид:
void mexFunction(int nOut, mxArray* pOut[],int nIn, const mxArray* pIn[])
{...}
Тип mxArray описан в соотв. заголовочниках и библиотеках, поставляемых с МатЛАБом для уймы разных компиляторов(кстати, это добро у МатЛАБа только для версий VC до 7.1 включительно, однако было время, когда я 7мым VC++ делал dllки из библиотечек для 6го, и все работало на ура). Собс-но, компилируется все нормально, dllка просто не распознается.
Скорее всего, я не угадал с причиной.
Солипсизм не пройдёт! :fal: