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

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

Войти
Регистрация
Восстановить пароль
 
LiveDeath
0 / 0 / 0
Регистрация: 18.11.2015
Сообщений: 4
#1

Ссылка на неразрешенный внешний символ в функции - C++

28.03.2016, 20:41. Просмотров 759. Ответов 6
Метки нет (Все метки)

Доброго времени суток, задача моя состояла в том, чтобы из ранее сделанной мной практической работы сделать проект с использованием DLL.
Попытавшись проштудировать теорию, что-то да вышло(100% корявое).
Т.к. я пока учусь, попытки разобрать проблему по ранее созданным темам на форуме у меня не вышло, прошу вашей помощи
Сами ошибки:
Кликните здесь для просмотра всего текста

Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка LNK2019 ссылка на неразрешенный внешний символ _GetTime в функции _main ConsoleApplication4 F:\VisualStudio1231231\СисПО\Лаб6\ConsoleApplication4\ConsoleApplication4\Main.obj 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ _PutTime в функции _main ConsoleApplication4 F:\VisualStudio1231231\СисПО\Лаб6\ConsoleApplication4\ConsoleApplication4\Main.obj 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ _AddTime в функции _main ConsoleApplication4 F:\VisualStudio1231231\СисПО\Лаб6\ConsoleApplication4\ConsoleApplication4\Main.obj 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ _DiffTime в функции _main ConsoleApplication4 F:\VisualStudio1231231\СисПО\Лаб6\ConsoleApplication4\ConsoleApplication4\Main.obj 1
Ошибка LNK1120 неразрешенных внешних элементов: 4 ConsoleApplication4 F:\VisualStudio1231231\СисПО\Лаб6\ConsoleApplication4\Debug\ConsoleApplication4.exe 1

main.cpp
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
#include "/VisualStudio1231231/СисПО/Лаб6/ConsoleApplication3/ConsoleApplication3/dll.h"
 
using namespace std;
 
void main()
{
    setlocale(LC_ALL, "Rus");
    cout << "Лабораторная работа №4. Вариант 2." << endl;
    Time t;
    GetTime(&t);
    Time t1;
    GetTime(&t1);
    cout << "Время 1: ";
    PutTime(t);
    cout << endl;
    cout << "Время 2: ";
    PutTime(t1);
    cout << endl;
    AddTime(&t, t1);
    cout << endl;
    int i = DiffTime(t, t1);
    cout << "Разница времен в секундах: " << abs(i) << endl;
    system("pause");
}
dll.cpp
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
43
44
45
46
#include "F:/VisualStudio1231231/СисПО/Лаб6/ConsoleApplication3/ConsoleApplication3/dll.h"
 
using namespace std;
 
extern "C" __declspec(dllexport) void GetTime(Time *t1)
{
    Time t;
    cout << "Введите время в формате чч:мм:сс ";
    cin >> t.h >> t.m >> t.s;
    *t1 = t;
}
 
extern "C" __declspec(dllexport) void PutTime(Time t)
{
    cout << "Вы ввели время: " << t.h << ":" << t.m << ":" << t.s << endl;
}
 
extern "C" __declspec(dllexport) void AddTime(Time *t, Time t1)
{
    Time t2;
    t2 = *t;
    t2.h += t1.h;
    t2.m += t1.m;
    t2.s += t1.s;
    if (t2.s > 60) {
        t2.s = t2.s - 60;
        t2.m = t2.m + 1;
    }
    if (t2.m > 60) {
        t2.m = t2.m - 60;
        t2.h = t2.h + 1;
    }
    if (t2.h > 24) {
        t2.h = t2.h - 24;
    }
    cout << "Сумма времен: " << t2.h << ":" << t2.m << ":" << t2.s;
    *t = t2;
}
 
extern "C" __declspec(dllexport) int DiffTime(Time t, Time t1)
{
    int s, s1;
    s = (t.h * 60) * 60 + t.m * 60 + t.s;
    s1 = (t1.h * 60) * 60 + t1.m * 60 + t1.s;
    return s - s1;
}
dll.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#ifndef dll
#define dll __declspec(dllimport)
#include <iostream>
struct Time
{
    unsigned int h; //часы
    unsigned int m; //минуты
    unsigned int s; //секунды
};
 
extern "C" __declspec(dllexport) void GetTime(Time *t);
extern "C" __declspec(dllexport) void PutTime(Time t);
extern "C" __declspec(dllexport) void AddTime(Time *t, Time t1);
extern "C" __declspec(dllexport) int DiffTime(Time t, Time t1);
#endif
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2016, 20:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ссылка на неразрешенный внешний символ в функции (C++):

Ссылка на неразрешенный внешний символ _main в функции - C++
Добрый вечер. При компиляции даёт мне такую ошибку MSVCRTD.lib(crtexe.obj) : error LNK2019: ссылка на неразрешенный внешний символ...

Ссылка на неразрешенный внешний символ _WinMain@16 в функции ___tmainCRTStartup - C++
Во всех проектах выдает одну и ту же ошибку. Пишу на c++ VS 2012. 1&gt;------ Построение начато: проект: Win32Project1, Конфигурация:...

Ошибка LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup - C++
Здравствуйте! При запуске программы для использования классических блокирующих сокетов в MS Visual C++, выдает ошибку LNK2019: ссылка на...

Error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup - C++
Error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup Помогите,в чём ошибка? #include...

Error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup - C++
Компилятор выдает две ошибки 1)error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup 2)error...

Возникает ошибка: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup - C++
Помогите исправить. И удалить четные элементы из списка. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; struct...

6
nd2
2353 / 1943 / 681
Регистрация: 29.01.2016
Сообщений: 6,326
28.03.2016, 21:28 #2
dll.lib подключи.
http://www.xserver.ru/computer/sredaprogr/msvc/2/
1
LiveDeath
0 / 0 / 0
Регистрация: 18.11.2015
Сообщений: 4
28.03.2016, 22:03  [ТС] #3
Прошу прощения, но просмотрев информацию по Вашей ссылке, не нашел момента с подключением файла *.lib
0
nd2
2353 / 1943 / 681
Регистрация: 29.01.2016
Сообщений: 6,326
28.03.2016, 22:09 #4
Там сказано об этом без описания процесса. Подключается так же, как и любая другая либа. В свойствах проекта, компоновщик, дополнительные каталоги библиотек - путь к ней; ввод - дополнительные зависимости - имя.
1
LiveDeath
0 / 0 / 0
Регистрация: 18.11.2015
Сообщений: 4
28.03.2016, 22:22  [ТС] #5
Ага, нашел. Спасибо.
Только есть проблема, после сборки решения(dll.h и dll.cpp) не могу найти в папке с проектом dll.lib. Единственный файл с расширением .lib - ConsoleApplication3.lib в папке Debug.
Где я ошибся?
0
nd2
2353 / 1943 / 681
Регистрация: 29.01.2016
Сообщений: 6,326
28.03.2016, 22:28 #6
Цитата Сообщение от LiveDeath Посмотреть сообщение
не могу найти в папке с проектом dll.lib.
Это я для примера написал, я же не знаю какие там у тебя имена. Имя должно быть такое же, как и у .dll (скорее всего, имя проекта, в котором dll собираешь).
1
LiveDeath
0 / 0 / 0
Регистрация: 18.11.2015
Сообщений: 4
28.03.2016, 22:37  [ТС] #7
Спасибо. Кажется понял в чем проблема
0
28.03.2016, 22:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2016, 22:37
Привет! Вот еще темы с ответами:

Error LNK2019: ссылка на неразрешенный внешний символ _URLDownloadToFileW@20 в функции _WinMain@16 - C++
Ошибка при добавлении этой строчки в проект URLDownloadToFile(0, L&quot;http://exampledownload.do.am/12.txt&quot;, L&quot;C:\\12.txt&quot;, 0, 0); error...

Ссылка на неразрешенный внешний символ _main в функции "int__cdecl invoke_main(void) - C++
KVITANTSIA.h #pragma once #ifndef KVITANTSIA_H #define KVITANTSIA_H #define at all #include &lt;string&gt; using namespace std; ...

Error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup MSVCRTD.lib - C++
Пожалуйста помогите найти ошибку. template&lt;class T&gt; class Stack { private: T* ss; int top; public: Stack(int); void...

Ошибка линковщика(error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup) - C++
#include &lt;iostream&gt; using namespace std; void rotor(int *a,int k,int len) { // Создаем и инициализиуем временный массив ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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