Visual Studio 2017 for Dymola无法打开stdio.h

时间:2019-04-30 13:33:40

标签: c++ compiler-errors visual-studio-2017 dymola

我正在尝试使用Visual Studio 2017作为Dymola 2019中的编译器。我已经在VS2017中为C ++安装了所有组件(据我所知)。但是,当我尝试在Dymola中测试编译器时,出现如下错误消息:

StatisticsModel

我也尝试使用Visual Studio 2015,但同样失败。

public class AdditionCalc : BaseCalculator
{
    public AdditionCalc() : base(new Version(ConfigurationManager.ConnectionStrings["dbConnectionString"].ConnectionString)) { }
    public override StatisticsModel Calculate(StatisticsRequest model)
    {
         //no version code here
    }
    protected override void CalculateInternal(Request r)
    {
    }
}

public class AggregateCalc : BaseCalculator
{
    public AggregateCalc() : base(new Version(ConfigurationManager.ConnectionStrings["dbConnectionString"].ConnectionString)) { }
    public override StatisticsModel Calculate(StatisticsRequest model)
    {
         //no version code here
    }
    protected override void CalculateInternal(Request r)
    {
    }
}

我也找不到VS2017文件夹中的stdio.h。但是它位于程序文件中单独的文件夹WindowsSDK中。

编译器测试应该可以工作(至少从我过去对dymola和VS的经验来看,不确定这些工具的较新版本是否引起混乱)

4 个答案:

答案 0 :(得分:1)

您如何验证已安装了所有用于C ++编译的内容?

对于Visual Studio的某些配置,您必须编译C / C ++文件以触发实际编译器的下载(正常情况下仅安装IDE)。

(取决于管理员的版本和配置。)

答案 1 :(得分:1)

好吧,事实证明,即使我拥有管理员权限,IT部门实际上也没有给我访问注册表(即regedit)的能力,并且只是被禁用了。

因此,在启用它之后,我可以确认现在Dymola在VS 2017和2015中都可以正常工作。

显然,dymola需要访问regedit进行编译(不确定原因)。

答案 2 :(得分:1)

只需完成此操作,因为我还遇到了我具有管理员权限,但无法访问注册表的问题,因此Dymola抛出了编译器错误。有两种可能性:

  1. 从IT部门访问注册表。
  2. 由于限制,如果无法这样做。 Eiter安装了一个绕过注册表或手动更改路径的工具,我不建议这样做,因为这些工具不太严重。

这是至少如何更改VS2013路径的解决方案。首先,您需要在以管理员身份打开的文本编辑器中打开options: { plugins: { zoom: false } } 中的vcvars32.bat。在那里,您需要注释掉前3行,这将执行不可能设置多个路径的注册表调用。之后,您需要在%ProgramFiles(x86)%\Microsoft Visual Studio 12.0\VC\bin\中手动设置这些路径。最后,vcvars32.bat的开头应如下所示:

vcvars32.bat

也许,您需要稍微调整一些配置路径。

有关更多信息,请参见此处:

  

VS2010 command prompt gives error: Cannot determine the location of the VS Common Tools folder

答案 3 :(得分:0)

不同的原因可能导致它。

如果您在安装 Dymola 之前不小心删除了系统环境变量中的 PATH 值,您可能会遇到该问题。将“%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0”加入系统环境变量中的PATH值后,编译器就可以重新工作了。< /p>