Я использую программу, разработанную кем-то другим с использованием С++ и Matlab. У меня есть исходный код обоих, но я не знаю, что происходит...
Matlab вызывает dll, сгенерированную из С++, используя что-то вроде этого:
myCustomCppFunction('param1', 'param2)
Я ожидал увидеть myCustomCppFunction в экспорте dll, но не смог его найти.
Когда я запускаю команду dumpbin, я получаю что-то вроде этого:
dumpbin /exports c:/myCustomCpp.dll
ordinal hint RVA name
1 0 00001010 myCustomCppFunctionWithADifferentName
So,
myCustomCppFunctionWithADDifferentName != myCustomCppFunction
DLL экспортирует имя функции, которое отличается от имени функции, которое вызывает мой Matlab. И я не говорю о искаженных именах, оба имени на 100% разные, как «яблоко» и «банан». :-)
Почему-то все работает нормально! но как?!?
В Matlab я также запустил команду what, которая подтвердила мне, что вызываемая функция происходит из библиотеки DLL, которую я исследую....
>> which myCustomCppFunctionWithADifferentName
>> c:/myCustomCpp.dll
любые подсказки?