VB纯手工Link/链接编译
这些其实VB6.0 IDE把这些功能屏蔽了,不让用户使用。
具体为啥,不知道
实际上vb6.0 link.exe和vc++的用法一样。
可以手工来连接。
先替换link.exe中断编译,提取ojb文件(可恶的IDE会在编译完后把ojb文件删除)
接下来看看link.exe的参数:
Microsoft (R) Incremental Linker Version 6.00.8447
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.usage: LINK [options] [files] [@commandfile]
options:
/ALIGN:# 指定每一节的对齐方式
/BASE:{address|@filename,key} 为程序设置基址
/COMMENT:comment
/DEBUG 创建调试信息
/DEBUGTYPE:{CV|COFF}
/DEF:filename 将模块定义 (.def) 文件传递到链接器
/DEFAULTLIB:library 在解析外部引用时搜索指定的库
/DELAY:{NOBIND|UNLOAD} 控制 DLL 的延迟加载
/DELAYLOAD:dll 导致延迟加载指定的 DLL
/DLL 生成 DLL
/DRIVER[:{UPONLY|WDM}] 创建 Windows NT 核心模式驱动程序
/ENTRY:symbol 设置起始地址
/EXETYPE:DYNAMIC
/EXPORT:symbol 导出函数
/FIXED[:NO] 创建只能在其首选基址加载的程序
/FORCE[:{MULTIPLE|UNRESOLVED}] 强制完成链接,不论符号是否无法解析或被定义了多次
/GPSIZE:#
/HEAP:reserve[,commit] 设置堆的大小(以字节为单位)
/IMPLIB:filename 重写默认的导入库名
/INCLUDE:symbol 强制符号引用
/INCREMENTAL:{YES|NO} 控制增量链接
/LARGEADDRESSAWARE[:NO] 通知编译器应用程序支持大于 2 GB 的地址
/LIBPATH:dir 允许用户重写环境库路径
/LINK50COMPAT
/MACHINE:{ALPHA|ARM|IX86|MIPS|MIPS16|MIPSR41XX|PPC|SH3|SH4} 指定目标平台
/MAP[:filename] 创建映射文件
/MAPINFO:{EXPORTS|FIXUPS|LINES} 包括映射文件中的指定信息
/MERGE:from=to 合并区段
/NODEFAULTLIB[:library] 在解析外部引用时忽略所有(或指定的)默认库
/NOENTRY 创建纯资源 DLL
/NOLOGO 取消显示启动版权标志
/OPT:{ICF[,iterations]|NOICF|NOREF|NOWIN98|REF|WIN98} 控制 LINK 优化
/ORDER:@filename 按预先确定的顺序将 COMDAT 放置到图像中
/OUT:filename 指定输出文件名
/PDB:{filename|NONE} 创建程序数据库 (PDB) 文件
/PDBTYPE:{CON[SOLIDATE]|SEPT[YPES]}
/PROFILE 生成一个可与“性能工具”探查器结合使用的输出文件。
/RELEASE 在 .exe 文件头中设置校验和
/SECTION:name,[E][R][W][S][D][K][L][P][X] 重写节的属性
/STACK:reserve[,commit] 设置堆栈的大小(以字节为单位)
/STUB:filename 将 MS-DOS 存根 (stub) 程序附加到 Win32 程序
/SUBSYSTEM:{NATIVE|WINDOWS|CONSOLE|WINDOWSCE|POSIX}[,#[.##]] 通知操作系统如何运行 .exe 文件
/SWAPRUN:{CD|NET} 通知操作系统在运行链接器输出前将它复制到交换文件
/TSAWARE[:NO] 创建专为在终端服务器下运行而设计的应用程序
/VERBOSE[:LIB] 打印链接器进度消息
/VERSION:#[.#] 分配版本号
/VXD
/WARN[:warninglevel]
/WINDOWSCE:{CONVERT|EMULATION}
/WS:AGGRESSIVE相关说明和一些用法:
link时使用filealign,align选项可明显减少exe文件的大小,opt,merge也可以,不过不是很明显。/EXPORT:symbol选项可用于VB实现输出DLL的制做。
/opt:nowin98
/align:0x800 '减少可执行程序的空白区
/merge:.text=.data '合并text区段(版权)
/merge:.rsrc=.data '合并rsrc区段(图标)减小体积:
/ALIGN:32 让程序32位对齐,体积可以减小很多.生成控制台程序:
/SUBSYSTEM:CONSOLE