C++ cli VS2010 C++;数学支持(找不到sin标识符) 我在一个新的C++项目中有一个Windows窗体,一个Butn1,在Butn1代码里面使用一些TIG函数。我还在Form1.h文件旁边的resource.h文件中包含。(以下是资源.h的内容): /{{NO_DEPENDENCIES} //微软Visual C++生成的包含文件。 //由app.rc使用 #包括

C++ cli VS2010 C++;数学支持(找不到sin标识符) 我在一个新的C++项目中有一个Windows窗体,一个Butn1,在Butn1代码里面使用一些TIG函数。我还在Form1.h文件旁边的resource.h文件中包含。(以下是资源.h的内容): /{{NO_DEPENDENCIES} //微软Visual C++生成的包含文件。 //由app.rc使用 #包括,c++-cli,cmath,C++ Cli,Cmath,为什么代码看不到trig函数 按钮1代码如下所示: private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { double x[1000]; double y[1000]; double hifac; double px[1000];

为什么代码看不到trig函数

按钮1代码如下所示:

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {

                 double x[1000];
                 double y[1000];
                 double hifac;
                 double px[1000];
                 double py[1000];
                 int nout, jmax;
                 double prob;
                 int i,period;
                 period=300;                                 
                 for (i=0; i<1000;i++){
                     x[i]=i;
                     y[i]=sin(2 * 3.14 * i / period);
                 }

             }
private:System::Void按钮1\u单击(系统::对象^sender,系统::事件参数^e){
双x[1000];
双y[1000];
双hifac;
双px[1000];
双py[1000];
int nout,jmax;
双探针;
int i,期间;
周期=300;

对于(i=0;i只需将适当的代码放在适当的位置即可。该#include不属于resource.h中。该头文件应严格保留给非托管资源的资源标识符定义。几乎任何其他地方都是合适的,显而易见的选择是该代码出现的源文件和stdafx.h预编译头文件f伊莱


并使用适当的数学函数。它是
std::sin()
,缺少名称空间名称肯定是编译器抱怨的原因。但是从托管代码调用该函数效率低下,需要额外的工作才能从托管代码运行本机代码。这不是很多额外的工作,但却是不必要的工作。使用
math::sin()
相反。

在.NET应用程序(如您的应用程序)中,使用。无论如何,如果您将
#include
包含在文件a中,为什么您希望它对文件B中的代码有帮助?您是否尝试过使用名称空间前缀-std::sin()?谢谢-我将#include添加到该特定文件中,并且效果良好。
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {

                 double x[1000];
                 double y[1000];
                 double hifac;
                 double px[1000];
                 double py[1000];
                 int nout, jmax;
                 double prob;
                 int i,period;
                 period=300;                                 
                 for (i=0; i<1000;i++){
                     x[i]=i;
                     y[i]=sin(2 * 3.14 * i / period);
                 }

             }