3.2.2 Windows環境の場合の翻訳と結合
(1) 手順
CUP作成時の手順を次の図に示します。
(2) 翻訳と結合
(a) ソースプログラムの翻訳
Windows環境でCUPのオブジェクトファイルを作成するには,Microsoft Visual C++を使用します。翻訳はCLコマンドで実行します。
翻訳時に必須となるオプションを次の表に示します。
クライアント機能 |
オプション |
オプションの意味 |
---|---|---|
TP1/Client/P |
/DDCCLTDLL |
TP1/Client/P提供のヘッダファイルを展開します。 |
ソースプログラムを翻訳するときのコマンドの入力例を次に示します。
- 〈例〉
-
C言語で作成したCUPのソースプログラム名…
-
cup.c(メイン関数)
-
cupsub1.c(内部関数1)
-
cupsub2.c(内部関数2)
この場合,それぞれのソースプログラムを次のように翻訳します。
CL /DDCCLTDLL /c cup.c CL /DDCCLTDLL /c cupsub1.c CL /DDCCLTDLL /c cupsub2.c
上記CLコマンドを実行すると,次のオブジェクトファイルが作成されます。
-
cup.obj(メイン関数のオブジェクトファイル)
-
cupsub1.obj(内部関数1のオブジェクトファイル)
-
cupsub2.obj(内部関数2のオブジェクトファイル)
-
-
(b) リソース定義ファイルの作成
この例では,リソースとしてアイコンを定義します。リソース定義ファイルcup.rcを次のように作成します。
CUPI ICON cup.ico
- 注
-
CUPIはアイコンに付けた任意の名称です。
(c) リソースの翻訳
Microsoft Visual C++のリソースコンパイラを使用して,リソース定義ファイル(cup.rc)を次のように翻訳します。
rc /r cup.rc
上記rcコマンドを実行すると,リソースファイルcup.resが生成されます。
(d) モジュール定義ファイルの作成
モジュール定義ファイルcup.defの作成例を次に示します。
NAME CUPEXEC HEAPSIZE 1024 STACKSIZE 8192
- 注
-
STACKSIZEは,8192以上を指定してください。
(e) CUPの結合
CUPの実行形式ファイルは,次に示すファイルを結合させて作成します。結合は,LINKコマンドで実行します。
-
CUPのオブジェクトファイル(メイン関数と内部関数)
-
TP1/Client/Pのライブラリ(CLTW32.LIB,CLTWS32.LIBまたはCLTW64.LIB)※
-
インポートライブラリ(Windows SDKおよびVisual Studioが提供)
-
Windowsアプリケーション作成用のライブラリ(Windows SDKおよびVisual Studioが提供)
-
モジュール定義ファイル
- 注※
-
文字コード変換機能を使用する場合は,CLTCNV32.LIBまたはCLTCNV64.LIBも必要です。