Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 60, средняя оценка - 4.78
Aleks_
0 / 0 / 0
Регистрация: 15.05.2011
Сообщений: 12
#1

error LNK2019: unresolved external symbol - C++

15.05.2011, 22:26. Просмотров 7853. Ответов 7
Метки нет (Все метки)

Добрый вечер. Недавно начала изучение языка С++ и столкнулась с такими ошибками:

Error 1 error LNK2019: unresolved external symbol "double __cdecl rect(double,double,double (__cdecl*)(double))" (?rect@@YANNNP6ANN@Z@Z) referenced in function _main Integral.obj Integral
Error 2 error LNK2019: unresolved external symbol "double __cdecl f(double)" (?f@@YANN@Z) referenced in function _main Integral.obj Integral
Error 3 fatal error LNK1120: 2 unresolved externals C:\Users\Irina\Documents\Visual Studio 2008\Projects\Integral\Debug\Integral.exe Integral


Просмотрела несколько подобных тем на форуме, но так и не нашла решения проблемы. Подскажите, пожалуйста, как можно эту ошибку устранить.

Вот код программы:

Файл с основной программой

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include "stdafx.h"
#include "iostream"
#include "cmath"
#include "conio.h"
#include "Integ.h"
 
 
 
using namespace std;
 
 
 
void main()
{
double a=0;
double b=0;
int n=0;
cout<<'a=';
cin>>a;
cout<<'b=';
cin>>b;
cout<<'n=';
cin>>n;
double l=0;
double r=0;
double h=0;
double s=0;
int m=3;
switch(m){
case '1':{
    double h=(b-a)/n;
    for (int i=0; i<n; i++){
        double l=a+h*i;
        double r=l+h;
        s+=rect(l,r,f);}
    }
    break;
}
cout<<s;
}

Заголовочный файл:

C++
1
2
3
4
5
6
7
8
9
#pragma once
#include "cmath"
typedef double(*Tpf)(double);
Tpf f;
typedef double(*Tpmethod)(double, double, Tpf);
typedef double (*integ)(double, double, int, Tpf, Tpmethod);
double rect(double a, double b, Tpf pf);
double trap(double a, double b, Tpf pf);
double Simpson(double a, double b, Tpf pf);

Файл с функциями:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// Integ.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include "Integ.h"
#include "iostream"
#include "cmath"
#include "conio.h"
 
 
using namespace std;
 
 
double f(double x){
    double y=sqrt(1-x*x)*4;
    return (y);
}
 
double rect(double a, double b, Tpf pf){
    double s=(b-a)*pf((a+b)/2);
    return (s);
}
 
double trap(double a, double b, Tpf pf){
    double s=(b-a)/2*(pf(a)+pf(b));
    return (s);
}
 
double Simpson(double a, double b, Tpf pf){
    double s=(b-a)/6*(pf(a)+4*pf((a+b)/2)+pf(b);
    return (s);
}

Заранее спасибо.

 Комментарий модератора 
Используйте теги форматирования кода!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lifestyle
Mobile Developer
231 / 227 / 4
Регистрация: 10.05.2009
Сообщений: 917
15.05.2011, 22:59     error LNK2019: unresolved external symbol #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//#include "stdafx.h" "родные" инклюди пишем так < >
#include <stdafx.h> 
#include "iostream"
#include "cmath"
#include "conio.h"
#include "Integ.h"
 
 
 
using namespace std;
 
 
 
void main()
{
double a=0;
double b=0;
int n=0;
//cout<<'a='; это уже не char! исправляй дальше
cout<<"a=";
cin>>a;
cout<<'b=';
cin>>b;
cout<<'n=';
cin>>n;
double l=0;
double r=0;
double h=0;
double s=0;
int m=3;
switch(m){
case '1':{
        double h=(b-a)/n;
    for (int i=0; i<n; i++){
            double l=a+h*i;
            double r=l+h;
                s+=rect(l,r,f);}//функция rect() принимает 3 аргумента один из них указатель на функцию, так и не нашел на что f указывает , проблеммы именно в ней судя по ошибке
        }
        break;
}
cout<<s;
}
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
16.05.2011, 07:25     error LNK2019: unresolved external symbol #3
Цитата Сообщение от lifestyle Посмотреть сообщение
"родные" инклюди пишем так < >
С точностью до наоборот.)
Aleks_
0 / 0 / 0
Регистрация: 15.05.2011
Сообщений: 12
16.05.2011, 10:24  [ТС]     error LNK2019: unresolved external symbol #4
Спасибо, поняла, только теперь вылезает

Error 1 error C2664: 'rect' : cannot convert parameter 3 from 'double' to 'Tpf'

никак не могу устранить несоответствие типов... что делать не подскажете?

Добавлено через 1 минуту
Или вот

Error 1 error C2440: 'initializing' : cannot convert from 'double' to 'Tpf'
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
16.05.2011, 10:28     error LNK2019: unresolved external symbol #5
Цитата Сообщение от Aleks_ Посмотреть сообщение
что делать не подскажете?
Вместо вещественного числа, передавать указатель на функцию.
lifestyle
Mobile Developer
231 / 227 / 4
Регистрация: 10.05.2009
Сообщений: 917
16.05.2011, 11:12     error LNK2019: unresolved external symbol #6
Цитата Сообщение от Deviaphan Посмотреть сообщение
С точностью до наоборот.)
хм не припомню с каких пор , например, iostream пишем в кавычках , а не в <> . Ты наверное "родные инклюды" не так понял)))
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
16.05.2011, 11:15     error LNK2019: unresolved external symbol #7
Цитата Сообщение от lifestyle Посмотреть сообщение
iostream пишем в кавычках , а не в <>
Я и говорю, с точностью до наоборот. В кавычках сперва ищется в директории проекта.
Т.е. вместо
C++
1
2
#include <stdafx.h> 
#include "iostream"
Должно быть
C++
1
2
#include "stdafx.h" 
#include <iostream>
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.05.2011, 14:14     error LNK2019: unresolved external symbol
Еще ссылки по теме:

C++ MSVS 2012 error LNK2019: unresolved external symbol
C++ Error LNK2019: unresolved external symbol
Error LNK2019: unresolved external symbol C++
C++ Error LNK2019: unresolved external symbol "public:
Error LNK2019: unresolved external symbol C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
lifestyle
Mobile Developer
231 / 227 / 4
Регистрация: 10.05.2009
Сообщений: 917
16.05.2011, 14:14     error LNK2019: unresolved external symbol #8
только сейчас заметил что выделил stdafx , а не iostream)))))))))
Yandex
Объявления
16.05.2011, 14:14     error LNK2019: unresolved external symbol
Ответ Создать тему
Опции темы

Текущее время: 21:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru