Visual C++ 2008 Express Editionでアプリを作る(その9)

今回は、失敗したことをつらつらと書きます。横着しようとして深みにはまっていきました。これはこれで勉強になるんだけど。
デスクトップのファイルを動かすコードは、http://blog.2310.net/archives/462を使わせてもらうつもりでした。修正BSDライセンスなので、記載しされている事項を守れば問題ありません。自分だけで使うために、この日記でも書いた改造を行って毎日、使っています。

Cのソースコードコンパイル出来ない
CLRアプリはC言語コンパイル出来ませんでした。しかたがないので、C++の中でextern "C" {}を使う事にしました。
SHGetFolderPathなどのAPIが呼べない
コンパイルオプションを/clr:pureから/clrに変更する必要がありました。従来のAPIを呼ぶ部分はアンマネージコードと呼んで区別するそうです。
WindowsAPIがリンクエラー
色々と方法はあるようなのだけど、今回は#pragma comment(lib, "shell32.lib")とソースコードに必要なライブラリを明記した。
UNICODEで動いてくれない
いくつか手直しすることでコンパイルリンクは通ったのに、正常に動作しませんでした。調べると、流用したコードがUNICODEを前提としていないことが原因のようでした。これを変更するのは、難しそうだったのであきらめることにしました。