Visual C++2013 の SDK で Windows 2000のソフトを作る
そんなライブラリを作ってみました・ω・
プラットフォームを XPに
まず、コード生成でランタイムライブラリに DLLが入らないように /MT か /MTdにします。
リンカオプションで /FORCE:MULTIPLE と VCW2kLIB.objを追加。
ソースにも
#include "VCW2kLIB.h"
#pragma comment(lib,"VCW2kLIB.lib")
を追加。
DLLの場合は #define DLLMODE も追加。
最後にできた実行ファイルを spw95cnv.exe にドラッグ&ドロップ。
これで、素の Windows 2000で実行できるプログラムができるよ。
VC++2010の場合は、Win95でも動くはずなんですが、VC++2013の場合は、SetFilePointerEx も処理しなきゃならないらしい・ω・ むー。
VCW2kLIB.cabが404になります。
URLにごみが入っていました。
ありがとうございます
VS2013でWinXPSP3用コンパイルはできるけど、SubSystemバージョンを書き換えてWin2kで試すとkernel32に3つ足りない。WinNT4.0SP6aでは4つ足りない。
なんとかなりそうなので探すとここに行き当たった。でもcab落とせないし、なによりソース修正が発生するのは嫌だなぁ。
仕方ないので足りない代替コードをアセンブラ+Cで2つobj作ってkernel32に負けないようにプロジェクトに追加してリンク。
できたexeのSubSystemバージョンを変更すればNT4.0で動いたよ。