Windows で DLL を使う
最終更新:2009/09/25
001: #include <stdio.h> 002: __declspec(dllexport) int sub(int arg);sub.c
001: #include <stdio.h> 002: 003: #include "sub.h" 004: 005: int sub(int arg) 006: { 007: printf("sub %d\n", arg); 008: return arg + 1; 009: } 010:sub.mak
001: # DLL 作成サンプル Makefile (nmake 用) 002: # 実行例: 003: # nmake -f sub.mak 004: 005: # ディレクトリ 006: INC_DIR=. 007: 008: # フラグ設定 009: CFLAG=/nologo /W3 /DWIN32 $(CFLAG) /I $(INC_DIR) 010: 011: .SUFFIXES: .c .obj .exe 012: 013: all: sub.dll 014: 015: clean: cleanup 016: 017: cleanup: 018: del *.exe *.obj *.dll *.lib *.exp *.bak 019: 020: .c.obj: 021: $(CC) /c /Fo$@ $< $(CFLAG) 022: 023: sub.obj: sub.h 024: 025: sub.dll: sub.obj 026: $(CC) /LD /Fo$@ sub.obj 027:main.c
001: #include <stdio.h> 002: #include "sub.h" 003: 004: int main(int argc, char** argv) 005: { 006: printf("main %d\n", sub(1)); 007: return 0; 008: } 009:main.mak
001: # DLL 利用サンプル Makefile (nmake 用) 002: # 実行例: 003: # nmake -f main.mak 004: 005: # コマンド 006: MT=mt 007: 008: # ディレクトリ 009: LIB_DIR=. 010: INC_DIR=. 011: 012: # ライブラリ 013: LIBS=$(LIB_DIR)\sub.lib 014: 015: # フラグ設定 016: CFLAG=/nologo /W3 /DWIN32 $(CFLAG) /I $(INC_DIR) 017: LINKFLAG=/nologo /link $(LIBS) 018: 019: .SUFFIXES: .c .obj .exe 020: 021: all: main.exe 022: 023: clean: cleanup 024: 025: cleanup: 026: del *.exe *.obj *.exp *.bak 027: 028: .c.obj: 029: $(CC) /c /Fo$@ $< $(CFLAG) 030: 031: main.obj: sub.h 032: 033: main.exe: main.obj sub.lib 034: $(CC) /Fe$@ main.obj $(LINKFLAG) 035: IF EXIST $@.manifest $(MT) -manifest $@.manifest -outputresource:$@