Понял!Я сгенерировал код библиотеки, используя встроенный кодер MATLAB, и использовал Lcc встроенного компилятора Matlab для сборки библиотеки.Я работаю над основным приложением в MSVC, поэтому я предполагаю, что между библиотекой (Lcc) и моим основным проектом (MSVC) была некоторая проблема соглашения о вызовах.Эту проблему было особенно трудно обнаружить, потому что одна из моих библиотек (ButterOneLp) работала нормально, хотя она была сгенерирована с использованием Lcc.Однако другая библиотека не работала.
Проблема была исправлена с помощью
mex -setup
.,,Команда в MATLAB и изменение компилятора по умолчанию на MSVC в отличие от Lcc по умолчанию.
Я думаю, что Lcc основан на gcc, так что если кто-нибудь знает, как изменить соглашение о вызовах в коде C ++, чтобы gcc /Библиотеки lcc могут быть вызваны из MSVC, это было бы здорово.Тем не менее, это совершенно другой вопрос по сравнению с оригиналом, который был опубликован.
Мораль этой истории в том, чтобы проверить, что ваша библиотека и вызывающее приложение построены / были созданы с использованием одного и того же компилятора, если вы получили "фатальную ошибку: библиотека повреждена ".