インテル® マス・カーネル・ライブラリー 11.2 ユーザーズガイド
インテル® MKL は、次の関数ドメインで stdcall 呼び出し規則をサポートしています。
C/C++ で stdcall 呼び出し規則を使用するには、下記のガイドラインに従ってください。
関数呼び出しで、文字列の長さを関数に渡します。例えば、次の dgemm の呼び出しを比較してください。
cdecl: dgemm("N", "N", &n, &m, &k, &alpha, b, &ldb, a, &lda, &beta, c, &ldc);
stdcall: dgemm("N", 1, "N", 1, &n, &m, &k, &alpha, b, &ldb, a, &lda, &beta, c, &ldc);
次のいずれかの手法を使用して MKL_STDCALL マクロを定義します。
ソースコードでインテル® MKL ヘッダーファイルをインクルードする前にマクロを定義します。
...
#define MKL_STDCALL
#include "mkl.h"
...
マクロをコンパイラーに渡します。次に例を示します。
icl -DMKL_STDCALL foo.c
次のライブラリーとアプリケーションをリンクします。
mkl_intel_s.lib (スタティック・リンク)
mkl_intel_s_dll.lib (ダイナミック・リンク)