我换了一段程序:
For i = 0 To 84
Pal(i + 1).red = i * 3 + 3
Pal(i + 1).green = 0
Pal(i + 1).blue = 0
.......
Next
Set DDPalette = DDdraw.CreatePalette(DDPCAPS_8BIT Or DDPCAPS_ALLOW256, Pal())
............
Set DDmySourceSurface = DDdraw.CreateSurfaceFromFile(sName, DDSD)
DDmySourceSurface.SetPalette DDPalette