今回は、失敗したことをつらつらと書きます。横着しようとして深みにはまっていきました。これはこれで勉強になるんだけど。
デスクトップのファイルを動かすコードは、http://blog.2310.net/archives/462を使わせてもらうつもりでした。修正BSDライセンスなので、記載しされている事項を守れば問題ありません。自分だけで使うために、この日記でも書いた改造を行って毎日、使っています。
- Cのソースコードがコンパイル出来ない
- CLRアプリはC言語でコンパイル出来ませんでした。しかたがないので、C++の中でextern "C" {}を使う事にしました。
- SHGetFolderPathなどのAPIが呼べない
- コンパイルオプションを/clr:pureから/clrに変更する必要がありました。従来のAPIを呼ぶ部分はアンマネージコードと呼んで区別するそうです。
- WindowsのAPIがリンクエラー
- 色々と方法はあるようなのだけど、今回は#pragma comment(lib, "shell32.lib")とソースコードに必要なライブラリを明記した。
- UNICODEで動いてくれない
- いくつか手直しすることでコンパイルリンクは通ったのに、正常に動作しませんでした。調べると、流用したコードがUNICODEを前提としていないことが原因のようでした。これを変更するのは、難しそうだったのであきらめることにしました。