CUP作成時の手順を次の図に示します。
図3-1 CUP作成時の手順
Windows環境でCUPのオブジェクトファイルを作成するには,Microsoft C 6.0以降のコンパイラを使用します。翻訳はccコマンドで実行します。
翻訳時に必須となるオプションは,通常オブジェクトライブラリを使用する場合とDLLを使用する場合とで異なります。それぞれの場合のオプションを,次の表に示します。
表3-3 翻訳時の必須オプション(Windows環境で通常オブジェクトライブラリを使用する場合)
クライアント機能 | オプション | オプションの意味 |
---|---|---|
TP1/Client/P | /AM | 適用するメモリモデルの種類です。 /AM…Mediumメモリモデル (Windows環境の場合,TP1/Client/Pライブラリの適用メモリモデルがMediumメモリモデルのためです) |
/Zp | 構造体をパッキングします。 | |
/Gw | Windows専用のプロローグ・エピローグを生成します。 | |
/DDCCLTFAR | ポインタをfarポインタとして定義します。 |
表3-4 翻訳時の必須オプション(Windows環境でDLLを使用する場合)
クライアント機能 | オプション | オプションの意味 |
---|---|---|
TP1/Client/P | /Zp | 構造体をパッキングします。 |
/Gw | Windows専用のプロローグ・エピローグを生成します。 | |
/DDCCLTFAR | ポインタをfarポインタとして定義します。 | |
/DDCCLTDLL | TP1/Client/P提供のヘッダファイルをDLL用に展開します。 |
ソースプログラムを翻訳するときのコマンドの入力例を次に示します。
CL /AM /Zp /Gw /DDCCLTFAR /c cup.c
CL /AM /Zp /Gw /DDCCLTFAR /c cupsub1.c
CL /AM /Zp /Gw /DDCCLTFAR /c cupsub2.c
CL /Zp /Gw /DDCCLTFAR /DDCCLTDLL /c cup.c
CL /Zp /Gw /DDCCLTFAR /DDCCLTDLL /c cupsub1.c
CL /Zp /Gw /DDCCLTFAR /DDCCLTDLL /c cupsub2.c
この例では,リソースとしてアイコンを定義します。リソース定義ファイルcup.rcを次のように作成します。
CUPI ICON cup.ico
Windows SDKのリソースコンパイラを使用して,リソース定義ファイル(cup.rc)を次のように翻訳します。
rc /r cup.rc
上記rcコマンドを実行すると,リソースファイルcup.resが生成されます。
モジュール定義ファイルcup.defの作成例を次に示します。
NAME CUPEXEC
DESCRIPTION 'CUP SAMPLE PROGRAM'
EXETYPE WINDOWS
STUB 'WINSTUB.EXE'
CODE PRELOAD MOVEABLE
DATA PRELOAD MOVEABLE
HEAPSIZE 1024
STACKSIZE 8192
CUPの実行形式ファイルは,次に示すファイルを結合させて作成します。結合は,LINKコマンドで実行します。