1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Из-за чего ошибка?

Тема в разделе "С и С++", создана пользователем Masters, 21 фев 2009.

  1. Masters

    Masters Гость

    Репутация:
    0
    Код:
    #pragma once
    
    
    namespace as {
    
    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
    
    /// <summary>
    /// Сводка для Form1
    ///
    /// Внимание! При изменении имени этого класса необходимо также изменить
    ///		 свойство имени файла ресурсов ("Resource File Name") для средства компиляции управляемого ресурса,
    ///		 связанного со всеми файлами с расширением .resx, от которых зависит данный класс. В противном случае,
    ///		 конструкторы не смогут правильно работать с локализованными
    ///		 ресурсами, сопоставленными данной форме.
    /// </summary>
    public ref class Form1 : public System::Windows::Forms::Form
    {
    public:
    Form1(void)
    {
    InitializeComponent();
    //
    //TODO: добавьте код конструктора
    //
    }
    
    protected:
    /// <summary>
    /// Освободить все используемые ресурсы.
    /// </summary>
    ~Form1()
    {
    if (components)
    {
    delete components;
    }
    }
    private: System::Windows::Forms::TextBox^ textBox1;
    protected: 
    private: System::Windows::Forms::Button^ button1;
    private: System::Windows::Forms::Label^ label1;
    
    private:
    /// <summary>
    /// Требуется переменная конструктора.
    /// </summary>
    System::ComponentModel::Container ^components;
    
    #pragma region Windows Form Designer generated code
    /// <summary>
    /// Обязательный метод для поддержки конструктора - не изменяйте
    /// содержимое данного метода при помощи редактора кода.
    /// </summary>
    void InitializeComponent(void)
    {
    this->textBox1 = (gcnew System::Windows::Forms::TextBox());
    this->button1 = (gcnew System::Windows::Forms::Button());
    this->label1 = (gcnew System::Windows::Forms::Label());
    this->SuspendLayout();
    // 
    // textBox1
    // 
    this->textBox1->Location = System::Drawing::Point(73, 63);
    this->textBox1->Name = L"textBox1";
    this->textBox1->Size = System::Drawing::Size(100, 20);
    this->textBox1->TabIndex = 0;
    // 
    // button1
    // 
    this->button1->Location = System::Drawing::Point(140, 134);
    this->button1->Name = L"button1";
    this->button1->Size = System::Drawing::Size(75, 23);
    this->button1->TabIndex = 1;
    this->button1->Text = L"button1";
    this->button1->UseVisualStyleBackColor = true;
    this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
    // 
    // label1
    // 
    this->label1->AutoSize = true;
    this->label1->Location = System::Drawing::Point(13, 143);
    this->label1->Name = L"label1";
    this->label1->Size = System::Drawing::Size(35, 13);
    this->label1->TabIndex = 2;
    this->label1->Text = L"label1";
    // 
    // Form1
    // 
    this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
    this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
    this->ClientSize = System::Drawing::Size(292, 266);
    this->Controls->Add(this->label1);
    this->Controls->Add(this->button1);
    this->Controls->Add(this->textBox1);
    this->Name = L"Form1";
    this->Text = L"Form1";
    this->ResumeLayout(false);
    this->PerformLayout();
    
    }
    #pragma endregion
    private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
    
    double pow(double,int);
    double m = pow(10,3);
    
    }
    };
    }
    Код:
    Компиляция...
    as.cpp
    Компоновка...
    as.obj : error LNK2028: ссылка на неразрешенную лексему (0A000005) "double __clrcall pow(double,int)" (?pow@@$$FYMNNH@Z) в функции "private: void __clrcall as::Form1::button1_Click(class System::Object ^,class System::EventArgs ^)" (?button1_Click@Form1@as@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)
    as.obj : error LNK2019: ссылка на неразрешенный внешний символ "double __clrcall pow(double,int)" (?pow@@$$FYMNNH@Z) в функции "private: void __clrcall as::Form1::button1_Click(class System::Object ^,class System::EventArgs ^)" (?button1_Click@Form1@as@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)
    C:\Documents and Settings\1\Мои документы\Visual Studio 2008\Projects\as\Debug\as.exe : fatal error LNK1120: 2 неразрешенных внешних элементов
    math.h подключен, почему не собирается?
     
  2. Masters

    Masters Гость

    Репутация:
    0
    Так работает, double m = pow(10.0,3.0);
    Что интересно, gcc компилит без всяких точек нормально, а vc++ нет.
     
  3. alexsid

    alexsid Гость

    Репутация:
    0
    а че за объявление в теле метода ?
    Код:
     private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
    можно попробовать так:
    Код:
    #include <math.h>
    
    ....
    
    private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
    #ifdef _MANAGED
    #pragma managed(push, off)
    #endif	
    
    double m = pow(10.0, 3);
    
    #ifdef _MANAGED
    #pragma managed(pop)
    #endif
    }
     
Загрузка...

Поделиться этой страницей