従来Windows版MEX関数の拡張子は.DLLだったが、2005年8月にリリースされたMATLAB 7.1から、拡張子が.dllから.mexw32に変更になった。これにより、将来の64ビット化へ対応と、UNIX版との拡張子のネーミングの統一性などを高めることができるようになった。
Windows x86 | - .mexw32 |
Windows x64 | - .mexw64 |
glnx86 | - .mexglx |
glnxa64 | - .mexa64 |
Mac OS X | - .mexmac |
sol2, SunOS 5.x | - .mexsol |
hpux | - .mexhpux |
しかしこの変更には、問題点もある。
それは、互換性のため従来のDLLの拡張子も使えるようになっているため、2つのファイル名が同じで拡張子(mexw32とdll)が異なるファイルが存在した場合である。
このような場合には、MATLABでは、以下のように対応するようになっており、これらを理解しておくと便利である。
MATLAB7.1以降のバージョンでの対応ルール
MATLABサーチパスに同名のファイルが存在したとき、
もし、2つのファイルが同じディレクトリにあったならば、mexw32が優先される。
異なるディレクトリの場合には、サーチパスの優先順位の高い方となる。
ソースファイルがある場合には、従来通りのやり方で再コンパイルするだけで簡単にmexw32ファイルを作ることができる。