……12年过去,我还真能在一定程度上回答这个问题了。
首先需要指出的是,Mathematica是有.NET/Link的,所以如果你用的是Visual Basic .NET,那么按照自带帮助来大概就行了。(我自己没用过,所以容我加个“大概”。)
但是,我们谈及VB,一般都是指Visual Basic 6.0 (VB6),这就有点麻烦了。MMA.SE唯一相关的讨论似乎是《Mathematica Functions from VBA》(编号23864),可早在2016年,就有评论指出该帖下面唯一的答案似乎已经失效。那么,还有没有其他办法呢?我还真想到了一个,那就是,借用命令行(command line, cmd)作为中介:
Function run(str As String) As String
Dim myshell As New WshShell 'requires ref to Windows Script Host Object Model
run = myshell.Exec("wolframscript -code " & str).StdOut.ReadAll
End Function
在debug窗口中:
print run("Solve[x^2+2x+5==0]")
效果:


注意:
1. 我是在VBA下面做的测试,但VB6应该差不多。
2. 函数返回值是个字符串,你多半需要进一步对其进行处理。
3. 函数的速度稍微有点拉,但是至少可以跑。(疑似是因为WolframScript的启动速度太慢了,也就是说,如果不需要频繁调用此函数的话,性能问题应该不会太突出。)
4. 如注释所说,你需要到“工具“ -> ”引用”里把“Windows Script Host Object Model”给勾上。