· 

RustでDLL(1)

WSLでRustでWindowsで動くバイナリが作れるとなるとDLLも作ってみたくなるのが人間の性ってやつだと思うわけです。参考サイトはこちら。今回も先人のたどった道をなぞる。猿真似?いや「学而時習之。不亦説乎。」ですよ。

 

まずはlib用のプロジェクトを作る。どんな感じなのかヘルプで調べる

cargo help new

cargo new --lib なんたら

ってすればいいらしい。

で、こうして、(今回も例題としてaes128を使うつもりなので、名前がrijndael)

こうなる。exampleとしてaddって関数を作ってくれている。が、これだと公開してくれないらしい。C++で作るときと一緒でextern "C"が必要だったり、マングリング防止のおまじないが必要だったりするらしい。

こうする。で、

前回に倣ってプロジェクトフォルダ内に.cargoフォルダを作って、その中にconfigってファイルを作って、

まぁ、こうする。

で、今回はここだけじゃなくて、Cargo.tomlも編集するらしい。

[lib]

crate-type = ["cdylib"]

を追加する。

で、

cargo build --lib --target x86_64-pc-windows-gnu

で、できたと言っている。

それらしいのがある。これを、WSLのフォルダからWindowsのフォルダに持ち込んで、Dependenciesで確認すると、

とりあえず、できているっぽい。

 

、、、しんどいので一度中断する。