できた

Swig(with D) が吐き出すラップ関数の定義は

#define DllExport __declspec( dllexport )
DllExport int new_Test() {

だが、

DllExport int __stdcall new_Test() {

にしたらできた。
#できた!と思ったら実行終了した瞬間シェルが終了してしまったが…。dmdだけで作ってるときもたまに起こる現象。なぜ


…うーん、デストラクタ(delete_*) を読んだら Access Violation が違った、デストラクタは呼べている。

void main() {
  void* fooclass = new_Foo();
  delete_Foo(fooclass);
  stdout.writeLine("here");
}

here と表示されたあと AV か…。