System::Call がDLL内の関数を呼んでくれなくて死亡

System::Call '$INSTDIR\Kanaria::Kashira(i, i) i($HWNDPARENT, 0).r0 ? u'

こんな記述だと、インストールパスに丸カッコ "()" が含まれている場合、DLL内関数呼び出しに失敗します。 $INSTDIR 内に展開されるカッコでパースが上手くできないからでしょう。 爆発しろ!

以下で対応可能です

# ↓SetCurrentDirectory()
SetOutPath "$INSTDIR"

# ↓カレントにある Kanaria.dll を読み込む == 相対DLL読み込み
System::Call 'Kanaria::Kashira(i, i) i($HWNDPARENT, 0).r0 ? u'

64bit環境でデフォルトのインストール先が C:\Program Files (x86) だったりするので、結構ワナにはまりやすいですHAHAHA!!!! 爆発しろ!