我从一本关于 F# 的书中制作了一个小型应用程序,但是当我调用 rand.NextDouble() 方法时,它会抛出一个 BadImageFormatException,乍一看它似乎与图像有关,所以我不知道我应该做什么在这里做。
我正在使用 Visual F# 2013 使用 VS community 2013。我有 64 位 Windows 7
我知道通过尝试单独的 let 是 nextdouble 方法的问题
let create_field num_asteroids =
let lerp (x: float<'u>) (y:float<'u>) (a:float) =
x*a+y*(1.0-a)
let rand = Random()
[for i =1 to num_asteroids do
let m =
(lerp earth_mass moon_mass (rand.NextDouble()))*
1.0e-4
let x = lerp 0.0<m> field_size (rand.NextDouble())
let y = lerp 0.0<m> field_size (rand.NextDouble())
let vx = max_velocity*(rand.NextDouble()*2.0-1.0)*0.1
let vy = max_velocity*(rand.NextDouble()*2.0-1.0)*0.1
yield
{
Position = { X = x; Y = y }
Velocity = { X = vx; Y = vy }
Mass = m
Name = "a"
}
]
这是错误代码:
System.BadImageFormatException 未处理 消息:Asteroid_Field_1.exe 中发生“System.BadImageFormatException”类型的未处理异常附加信息:尝试加载格式不正确的程序。(来自 HRESULT 的异常:0x8007000B)
MSDN 告诉我它可能与未以正确格式加载的 DLL 文件有关,但我什至不知道从哪里开始。
这是完整的代码
我刚刚在 FSI.exe 中尝试过,它在那里工作得很好