我正在用 VB6 编写一个项目。我正在使用 Win7-32 位并且项目有问题,这个项目是多年前写的,现在我正在重新编译它。当我发出 Make xxx.exe 命令时,VB6 开始编译并卡住并创建超过 10,000 个 *.tmp 文件,几分钟后它关闭 IDE 并且没有任何结果。 我的错在哪里?
最佳答案
解决我在编译大型可执行项目时 VB6 卡住问题的方法是将 VB 应用程序的 CPU 内核限制为只有一个内核(即,将 VB6 进程的关联掩码设置为 1)。
请注意,仅当 VB6 进程以关联掩码设置为 1 时才对我有效,而不仅仅是在 VB 进程启动后强制执行关联掩码(在任务管理器中)。 要在关联掩码设置为 1 的情况下启动 VB6,请使用以下快捷方式(分别适用于 64 位和 32 位操作系统)并以管理权限启动它:
C:\Windows\System32\cmd.exe/C start "VisualBasic6"/D "C:\Program Files (x86)\Microsoft Visual Studio\VB98"/AFFINITY 1 "C:\Program Files (x86)\Microsoft Visual Studio\VB98\VB6.EXE"
C:\Windows\System32\cmd.exe/C start "VisualBasic6"/D "C:\Program Files\Microsoft Visual Studio\VB98"/AFFINITY 1 "C:\Program Files\Microsoft Visual Studio\VB98\VB6.EXE"
如果这不起作用,请尝试使用上述方法在 VB6 IDE 之外创建您的项目。例如,假设您需要在路径 C:\MyProjects\TestProj 中构建一个名为 testproj.vbp 的项目,请在提升的命令提示符中使用以下命令(分别适用于 64 位和 32 位操作系统):
启动 "VisualBasic6"/D "C:\Program Files (x86)\Microsoft Visual Studio\VB98"/AFFINITY 1 "C:\Program Files (x86)\Microsoft Visual Studio\VB98\VB6.EXE"/make "C:\MyProjects\TestProj\testproj.vbp"/outdir "C:\MyProjects\TestProj"
开始 "VisualBasic6"/D "C:\Program Files\Microsoft Visual Studio\VB98"/AFFINITY 1 "C:\Program Files\Microsoft Visual Studio\VB98\VB6.EXE"/make "C:\MyProjects\TestProj\testproj.vbp"/outdir "C:\MyProjects\TestProj"
很遗憾,VB6 并没有提示编译已经完成,所以您需要在任务管理器中跟踪 VB6 进程(当编译完成时,VB6 进程将终止)。
仅供引用,我在具有 2 个 Intel Xeon 四核 CPU 的 Windows Server 2012 上运行 VB。
关于制作exe文件时VB6卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18744887/