Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2012, 17:37   #1
Elloriane
Пользователь
 
Регистрация: 19.02.2012
Сообщений: 60
По умолчанию Ошибка типа Link2019 (С#)

Создал простенькую программу, для рисования Н-угольников, да это не столь важно

Код:
#include "graphics.h"
#include <stdlib.h>
#include <stdio.h>
#include <math.h>

int main (void)
{
	double *x,*y;
	double R,ox,oy,pi=3.141529;
	int N,C,i;
		
	N=rand()%10+2;
	R=rand()%100;
	ox=rand()%100;
	oy=rand()%100;
	x=NULL; y=NULL;
	x=(double*)malloc(N*sizeof(double));
	y=(double*)malloc(N*sizeof(double));

	for (i=0;i<N;i++)
	{
		x[i]=ox-R*cos(2*pi*(1-1/N));
		y[i]=oy+R*sin(2*pi*(1-1/N));
	}

	for (i=0;i<N;i+=2)
		{
			line((int)x[i], (int)y[i], (int)x[i+1], (int)y[i+1]);
		}
}
у меня стоит Visual Studio 2010
при компиляции высвечивается ошибка:

Код:
Ошибка	2	error LNK2019: ссылка на неразрешенный внешний символ _line в функции _main	H:\Documents and Settings\Admin\Мои документы\Visual Studio 2010\Projects\one.c\one.c\one.obj	one.c

Ошибка	3	error LNK1120: 1 неразрешенных внешних элементов	H:\Documents and Settings\Admin\Мои документы\Visual Studio 2010\Projects\one.c\Debug\one.c.exe	1	1	one.c
У меня сложилось впечатления, что эта ошибка работает, только с функциями из модуля graphics.h
Этот модуль не родной, скачал поставил в папку, может к нему какое-то дополнение нужно? или забыл что-то подключить?
Есть идеи?
Elloriane вне форума Ответить с цитированием
Старый 19.02.2012, 17:52   #2
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Забыл подключить библиотеку к проекту.

Код:
#include "graphics.h" //<--- это подключение хэдэра библиотеки.
С библиотекой должны были идти ещё какие нибудь файлы, с реализациями библиотеки. Например, они могут иметь расширение *.Lib

В студии туловище библиотеки прописывается, либо в настройках самого проекта, либо через #pragma прям в исходном коде.

Например, это может выглядеть так:

Код:
#include "graphics.h"
#pragma comment(lib, "graphics.LIB")
(только имя точное нужно уточнить)
_Bers вне форума Ответить с цитированием
Старый 19.02.2012, 17:56   #3
Elloriane
Пользователь
 
Регистрация: 19.02.2012
Сообщений: 60
По умолчанию

Я правильно понял, т.е. вместе с файлом grafics.h должны идти какие-то ЛИЧНО ЕГО библиотечные файлы?
Просто в самом файле (grafics.h) идет обращение к некоторым стандартным библиотекам.
Elloriane вне форума Ответить с цитированием
Старый 19.02.2012, 18:10   #4
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Elloriane Посмотреть сообщение
Я правильно понял, т.е. вместе с файлом grafics.h должны идти какие-то ЛИЧНО ЕГО библиотечные файлы?
Просто в самом файле (grafics.h) идет обращение к некоторым стандартным библиотекам.
Сама по себе ошибка линкера:
Ошибка 2 error LNK2019: ссылка на неразрешенный внешний символ _line в функции _main

Говорит: прототип функции существует (где-то в хэдэре), а вот реализация не найдена.

Стало быть, должны идти ещё какие то файлы,
типа: *.c, *.cpp, *.LIB, *. obj

А возможно, что graphics.h - это очень старый файл стандартной библиотеки из бородатых времен, когда компы были очень большими, а памяти очень мало)

Если я прав, то искать реализацию библиотеки нужно в стандартной библиотеки древних IDE типа turbo c++

/зы: каждая библиотека, как правило имеет документацию, в которой описывается, каким образом её следует подключить к целевому проекту.

/зыы: если это действительно библиотечный заголовок из древней стандартной библиотеки, то в современных условиях я бы не рекомендовал его использовать, поскольку он более не поддерживается современными IDE, а возможно - и компиляторами.
_Bers вне форума Ответить с цитированием
Старый 19.02.2012, 18:14   #5
Elloriane
Пользователь
 
Регистрация: 19.02.2012
Сообщений: 60
По умолчанию

Цитата:
Сообщение от _Bers Посмотреть сообщение
Стало быть, должны идти ещё какие то файлы,
типа: *.c, *.cpp, *.LIB, *. obj
Если вы правы - не подскажете проверенный источник, откуда можно скачать файл со всем приданым?
(как такового grphics.h в стандартной сборке не было и я подозреваю отсутствие сопутствующих модулей)
Elloriane вне форума Ответить с цитированием
Старый 19.02.2012, 18:22   #6
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Вот смотри, я тупо вбил в яндекс "graphics.h"

О оказался вот здесь: http://www.garret.ru/cpp.html

В самом низу странички увидишь надпись:

BGI for Windows

emulation of Borland Graphic Interface library for MS-Windows (C language)

About WinBGI: readme.txt

Download WinBGI library: winbgi.zip

DLL version of WinBGI prepared by Andreas von Gorup: http://pluto.spaceports.com/~besanez/bgi


Тебя, я так понял больше всего интересует winbgi.zip

Тыкай на него, скачаешь архив. Там будет и твой файлик "graphics.h"
и файлик LIB
И даже демонстрационный пример, и документация.
_Bers вне форума Ответить с цитированием
Старый 19.02.2012, 18:23   #7
Elloriane
Пользователь
 
Регистрация: 19.02.2012
Сообщений: 60
По умолчанию

у меня возникло подозрение, что проблема не в нем, такая функция как length не работает
Elloriane вне форума Ответить с цитированием
Старый 19.02.2012, 18:25   #8
Elloriane
Пользователь
 
Регистрация: 19.02.2012
Сообщений: 60
По умолчанию

пробую твой вариант
Elloriane вне форума Ответить с цитированием
Старый 19.02.2012, 18:29   #9
Elloriane
Пользователь
 
Регистрация: 19.02.2012
Сообщений: 60
По умолчанию

Ошибка осталась по-прежнему.
Пойду ка я скачаю 2008 студию и по уму без компилятора допишу программу)
Elloriane вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка чтения из файла в переменную типа integer Max1548 Общие вопросы Delphi 2 12.10.2011 12:34
ошибка 1004 при удалении объекта типа Range Red_Garry Microsoft Office Excel 2 26.02.2011 15:12
Ошибка при реализации метода класса, имеющего поле шаблоннного типа. DKOI Общие вопросы C/C++ 5 19.10.2010 19:10
Ошибка о неизвесности типа IgorKr Общие вопросы C/C++ 4 13.07.2009 11:26
Ошибка при создании типа Monte-Kristo Помощь студентам 4 04.03.2009 19:51