我最近遇到了一个问题,就是我可以在一台PC上将图标添加到(VB6)表单中,并且可以正常工作,但是他们无法在另一台PC上运行/编译该图标。
原来,图标文件是32位的(包括Alpha通道),这就是问题所在。但是令我惊讶的是这是一个与系统有关的功能。
(在此特定示例中,是Win10 x64允许使用32位图标,而Win7 x32不允许使用)。
因此,现在似乎还很不清楚哪些版本的Windows VB6中允许使用哪些图标?
我看到了类似问题的示例,例如this question,而this other question概述了新的VB6原始功能是什么(?),但我仍然找不到信息全面分解了基于Windows版本的更改。
这很重要,因为如果我们知道仅部署到Windows 8/10,就不必一定要在Windows XP的限制内生存。但是我也不想冒险让一部分用户面临一些可怕的问题。
我已经对此进行了深入研究-看来Windows API函数OleLoadPicturePath()
在上面提到的两个Windows版本中的行为有所不同。在Win7上,它将以32位图标显示错误;但是在Win10上却没有。我不确定是否还有其他API函数也有所不同。