Поддержка математики VS2010 C++ (идентификатор греха не найден)

У меня есть форма Windows для нового проекта C++, Button1, и внутри кода Button1 я использую некоторые триггерные функции. у меня тоже есть #include <cmath> в resource.h файл рядом с Form1.h файл. (Ниже содержание resource.h):

//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by app.rc
#include <cmath>

Почему код не видит функцию триггера?

Код Button1 выглядит следующим образом:

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);
                 }

             }

1 ответ

Просто поместите соответствующий код в соответствующее место. Этот #include не принадлежит к resource.h, этот заголовочный файл должен быть зарезервирован строго для определения идентификатора ресурса для неуправляемых ресурсов. Практически везде уместно, очевидным выбором является исходный файл, в котором появляется этот код, и предварительно скомпилированный заголовочный файл stdafx.h.

И используйте соответствующую математическую функцию. это std::sin()Отсутствующее имя пространства имен, безусловно, является причиной жалобы компилятора. Но вызов этой функции из управляемого кода неэффективен, требуется дополнительная работа для запуска нативного кода из управляемого кода. Это не много дополнительной работы, но это ненужная работа. использование Math::Sin() вместо.

Другие вопросы по тегам