VisualStudio2010 が出たので、開発用のコンパイラも入れ替えたのですよ。で、うきうきしながらコーディングしていたのですが、思わぬ落とし穴が。
VisualStudio2010 で作られた実行ファイルが Windows2000 で動作しない!
いや、もう、ね。DLL が足りないとか、エントリーポイントが足りないとか、関数がないとか、そういうレベルではなくて、Windows2000 で実行すると「有効な Win32 アプリケーションではありません」と言われてしまうのですよ。
もうおまえは何を言っているのかと(以下略)
これは正直困りました。いろいろと検索してみたら、ランタイムライブラリをリンクしない というページがあったりして、ん~strcpy(_s)じゃなくて、lstrcpyを使えばいいのかな~とか、そもそもstd::string使えよ!?ってことかな~とかいろいろと考えたのですが、結局 VisualStudio2008 もインストールして両方で作ることにしました。
それと、上記ページにあった subsystem バージョンを変更する方法は 5.0 に設定すれば DecodePointer がないよ。と言われたので、DecodePointer を乗っ取ればいけそうなのですが、そもそもこの関数が何をするのかわからなかったのでやめました。
そのうち時間を見つけて WindowsDriverKit の方を調べてみるかな。
コメントを投稿する