Visual Studio2008即时自动检查语法错误;用于编写Fortran程序。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Visual Studio2008即时自动检查语法错误;用于编写Fortran程序。相关的知识,希望对你有一定的参考价值。

我现在用VS2008+Intel Fortran来编写Fortran程序,我想问一下,有没有能够使VS2008能够自动实时检测语法错误的办法。用Java的人知道,Netbeans这个IDE里面写Java程序,它能够自动补全括号,实时检查语法并提示,这样效率会非常高。我现在问问高人,有没有插件之类的使VS2008实现这一功能。

fortran的格式过于自由,应该没有此功能。其实用fortran主要是做一些数值计算方面的东西,用不着那么些过于智能的功能吧(我不知道有没有,只是感觉不需要)。

我用fortran一般在linux/Unix下,

win7下的话:
我用VS2010集成Intel.Visual.Fortran.Composer.XE.2011.5.221,不能双击打开一个.F文件直接编译,而要进去以项目的形式打开才行,这样很慢的,VS本身就很他妈慢。可能是我不会配置,所以用也就是用CMD或Cygwin来命令行用ifort命令,编译选项,写Makefile方便,只是变成.obj追问

Itel.Visual.Fortran.Composer.XE.2011.5.221带不带IMSL库?

参考技术A 应该没有,我全部功能都安装了也没发现这个功能。追问

所以需要找这么个插件。你知道Fortran么?Intel Fortran没有IMSL库,不知道该怎么办。

追答

你可以选择不用visual studio 用
Intel Visual Fortran Compiler 9.0 for Windows 进行fortran的开发。
我不懂fortran。。。。

在 Visual Studio 的即时窗口中访问“cmath”函数

【中文标题】在 Visual Studio 的即时窗口中访问“cmath”函数【英文标题】:Accessing 'cmath' functions in the Immediate Window of Visual Studio 【发布时间】:2013-09-24 21:25:00 【问题描述】:

在使用调试器的 Visual Studio 2010 Express 中,我可以输入如下成员函数:

?visc(alpha,i)  
8.2814899360436612e-005
?get_sign()
0.91513417241239037

进入即时窗口,它们工作正常。 但是,如果我尝试:

?sin(alpha)
?math.sin(alpha)
?cmath.sin(alpha)

我得到Error: symbol "math" not found 等等。我在主文件中包含了 cmath.h,并在整个代码中使用了sinasincosacosatan2sqrt。如何在即时窗口中获得这些功能?我在 Google 上搜索了我的问题,并找到了 2005 年添加此问题的请求以及使用成员函数的示例。

【问题讨论】:

我对VS不太了解,所以这是一个疯狂的猜测,但是由于cmath在命名空间std中有它的功能,那么std::sin(alpha)是否有效? 如果我在即时窗口中输入 std::sin(alpha) 我得到 CXX0017: Error: symbol "std::sin" not found. 【参考方案1】:

不直接支持这样的声音: http://connect.microsoft.com/VisualStudio/feedback/details/283279/add-simple-maths-function-support-to-debugger-exp-sin-cos-sqrt

我想如果你知道正确的 dll,你可以使用刚刚记录的上下文运算符来获取它(这是我本周第二次遇到这个人的博客): http://thetweaker.wordpress.com/2009/05/30/breaking-on-system-functions-with-the-context-operator/

类似问题的答案: https://***.com/a/3032271/611672

希望这会有所帮助。

【讨论】:

所以这是一个正确的答案。我只需要找到具有我需要的功能的dll。任何想法如何做到这一点?当我查看加载的模块时,我看到了 ntdll.dll、kernel32.dll、KernelBase.dll、msvcp100d.dll 和 mscvr100d.dll。除了 msvcr100d.dll 将采用 ,,msvcr100dsin() 并返回 之外,所有操作都直接失败。如果我尝试使用 ,,msvcr100dsin(0.786) 之类的数字,则会返回错误:参数列表与函数不匹配。我从 math.h 中知道 sinl(_X) 是实际调用的。但是 msvcr100d 没有该符号。我错过了什么? 我不知道。我昨天尝试获取 sqrt。您可能必须拥有 dll 的符号并正确获得编译器装饰。 (我的最终目标是让 sqrt 在 .natvis 文件中工作,但我可能会放弃。)我想如果迫在眉睫,你可以构建自己的 dll 并公开 mySine 和 myCosine,但是哎呀.一位同事说,您应该能够在反汇编中设置断点并在内部函数中单步执行,并查看调用堆栈以获取损坏的名称。在尝试之前我分心了。【参考方案2】:

只有部分导出的 dll 函数在 Visual Studio 即时窗口中运行。一些最常见的函数,如 sin、cos、pow、exp 不起作用。以下是 Visual Studio 2012 中一些经过测试的工作功能:

msvcp110d.dll!log(2.0)
0.69314718055994529
msvcr110d.dll!sqrt(2.0)
1.4142135623730951
msvcr110d.dll!_hypot(-2.0,1.0)
2.2360679774997898
msvcr110d.dll!_logb(-2.0)
1.0000000000000000
msvcr110d.dll!abs(-2.0)
2.0000000000000000
msvcr110d.dll!acos(-2.0)
-1.#IND000000000000
msvcr110d.dll!cosh(1)
1.5430806348152437
msvcr110d.dll!fabs(1)
1.0000000000000000

【讨论】:

以上是关于Visual Studio2008即时自动检查语法错误;用于编写Fortran程序。的主要内容,如果未能解决你的问题,请参考以下文章

visual studio如何设置自动检查语法错误啊!我用的2010版本

html 标记的语法突出显示在 Visual Studio 2008 中消失

自动分析 Visual Studio 2008

如何在 Visual Studio 2008 中自动删除尾随空格?

Visual Studio 2008 自动恢复目录位置更改

如何在 Visual Studio 2008 中键入“:”时禁用自动缩进