文書番号: 402070
最終更新日: 2004/04/27
FUNCTIONS: オーバーレイ番号 パッケージ化されたファンクション名 FUNCTIONS ステートメントの記述例) FUNCTIONS:1 _func0 _func1 _func2 _func3 _func4この記述で、_func0 - _func4 は、オーバーレイ1に置かれます。
例) exehdr vmain.exe Microsoft (R) EXE File Header Utility Version 3.00 Copyright (C) Microsoft Corp 1985-1992. All rights reserved. .EXE size (bytes) a6123 Magic number: 5a4d Bytes on last page: 00c9 Pages in file: 005a Relocations: 004d Paragraphs in header: 0020 Extra paragraphs needed: 019f Extra paragraphs wanted: ffff Initial stack location: 0b33:177c Word checksum: 0000 Entry point: 0272:0ba5 Relocation table address: 001e Memory needed: 51K
------------------------ MAKEFILE ------------------------------ all : vmain.exe .c.obj : cl /Gy /AL /c /f $< .obj.exe : link /ST:6012 @objlst vmain.exe : ov0.obj ov1.obj ov2.obj ov3.obj ov4.obj ov5.obj \ ov6.obj ov7.obj ov8.obj ov9.obj # C dependency as follows vmain.obj : vmain.c ov0.obj : ov0.c ov1.obj : ov1.c ov2.obj : ov2.c ov3.obj : ov3.c ov4.obj : ov4.c ov5.obj : ov5.c ov6.obj : ov6.c ov7.obj : ov7.c ov8.obj : ov8.c ov9.obj : ov9.c ------------------------- objlst ------------------------------- /INFO /DYNAMIC:512 vmain.obj + ov0.obj + ov1.obj + ov2.obj + ov3.obj + ov4.obj + ov5.obj + ov6.obj + ov7.obj + ov8.obj + ov9.obj ,,,,ov.def ------------------------- OV.DEF --------------------------------- FUNCTIONS:0 _func0 _func1 _func2 _func3 _func4 FUNCTIONS:1 _func5 _func6 _func7 FUNCTIONS:2 _func8 _func9結果マップ。
----------------------- VMAIN.MAP ------------------------------ Start Stop Length Name Class Resident 00000H 00000H 00000H VMAIN_TEXT CODE 00000H 00000H 00000H OV0_TEXT CODE 00000H 00000H 00000H OV1_TEXT CODE 00000H 00000H 00000H OV2_TEXT CODE 00000H 00000H 00000H OV3_TEXT CODE 00000H 00000H 00000H OV4_TEXT CODE 00000H 00000H 00000H OV5_TEXT CODE 00000H 00000H 00000H OV6_TEXT CODE 00000H 00000H 00000H OV7_TEXT CODE 00000H 00000H 00000H OV8_TEXT CODE 00000H 00000H 00000H OV9_TEXT CODE . . . 06110H 0788BH 0177CH STACK STACK Overlay 1H 00000H 01768H 01769H COMDAT_SEG2 CODE Overlay 2H 00000H 00F95H 00F96H COMDAT_SEG3 CODE Origin Group 0592:0 DGROUP Segments 61 Groups 1 Bytes in symbol table 26199 Overlays 3
a はルート b,c,d は Overlay 1 e,f は Overlay 2に配置します。obj は、/AL /c でコンパイルしてあります。
link /map a+b+c+d+e+f,,,,test.defDEF ファイルの記述は、例 1 , 2, 3 共に同様の結果が得られます。
TEST.DEF の例 -- 例1-- SEGMENTS A_TEXT OVL:0 SEGMENTS B_TEXT OVL:1 C_TEXT OVL:1 D_TEXT OVL:1 E_TEXT OVL:2 F_TEXT OVL:2 -- 例2 -- SEGMENTS A_TEXT OVL:0 SEGMENTS B_TEXT OVL:1 SEGMENTS C_TEXT OVL:1 SEGMENTS D_TEXT OVL:1 SEGMENTS E_TEXT OVL:2 SEGMENTS F_TEXT OVL:2 -- 例3 -- SEGMENTS A_TEXT OVL:0 B_TEXT OVL:1 C_TEXT OVL:1 D_TEXT OVL:1 E_TEXT OVL:2 F_TEXT OVL:2 << 実行結果 A.MAP >> Overlay 1H 00000H 00026H 00027H B_TEXT CODE 00028H 0004EH 00027H C_TEXT CODE 00050H 00076H 00027H D_TEXT CODE Overlay 2H 00000H 00026H 00027H E_TEXT CODE 00028H 0004EH 00027H F_TEXT CODE
例) _movepause(); // オーバーレイキャッシュの解放 execl( "child.exe", NULL,NULL);//子プロセスの起動また、プログラム中でグラフィックライブラリを使用している場合も、XMS メモリ
-------------- エラー内容 ----------------------- Microsoft (R) Segmented Executable Linker Version 5.31 Copyright (C) Microsoft Corp 1984-1992. All rights reserved. d:\c700\lib\moveinit.obj(moveinit.c) : error L2029: '__movesegenv' : unresolved external There was 1 error detectedA. MOVE_ENV を定義して作成した moveinit.obj をリンクすると L2029 のエラーとなり ます。これは、MOVE_ENV を定義することにより extern 宣言される _movesegenv の 実体が、標準ライブラリではなくライブラリ movetr.lib にふくまれているためで
Keywords: KBHOWTO KB402070
Technology: kbAudDeveloper kbvc150 kbVCsearch kbZNotKeyword3 kbZNotKeyword8