Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.84/19: Рейтинг темы: голосов - 19, средняя оценка - 4.84
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
1

Ошибка линковщика LNK2019: ссылка на неразрешенный внешний символ

23.07.2013, 02:39. Показов 3763. Ответов 24
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
полный текст:
Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ _WTSSendMessageA@40 в функции _main D:\Projects\ConsoleApplication91\ConsoleApplication91\Main.obj ConsoleApplication91
немного погуглив нашел, что эта проблема зачастую из-за проблем с хедерми и т.д., но у меня всего 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
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include "wtsapi32.h"
 
 
int main()
{
    char* title = "Hello";
    int tlen = strlen(title);
    char* msg = "Terminal Service!";
    int mlen = strlen(msg);
    DWORD *resp = (DWORD*)malloc(sizeof(DWORD*));
    HANDLE hServer = WTS_CURRENT_SERVER_HANDLE;//WTSOpenServer(L"MICROSOFT-PC");//
    const int session = WTS_CURRENT_SESSION;
    
    int result = WTSSendMessage(hServer, session, title, tlen, msg, mlen, 0, 0, resp, 0);
    printf("%i", result);
    getchar();
 
    return 0;
}
то есть в дальнейшем собираюсь подрубаться к удаленному компу (в одной локалке сидим). Но выдает такую ошибку. Больше файлов в проекте, повторюсь, нету.

Юникод, как видно, отключил - не помогло, вместо blablaB стал ругаться на blablaA
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.07.2013, 02:39
Ответы с готовыми решениями:

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

Структуры/Работа с файлами(ошибка линковщика error LNK2019: ссылка на неразрешенный внешний символ)
Задание: Дан файл содержащий сведения о видах журналов редакции.Структура записи файла: -код...

Ошибка LNK2019 ссылка на неразрешенный внешний символ
В заголовочном файле объявлен класс class cLogReader { public: cLogReader(int i) { ...

Ошибка LNK2019 ссылка на неразрешенный внешний символ
Ошибка LNK2019 ссылка на неразрешенный внешний символ &quot;void __cdecl sumArray(int * *,int *...

24
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
23.07.2013, 02:41 2
Psilon, надо компоновать с библиотекой, в которой есть реализация этой ф-ии.
1
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
23.07.2013, 02:42 3
Линковщик не нашёл реализацию WTSSendMessage().
1
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
23.07.2013, 02:47 4
Psilon, http://msdn.microsoft.com/en-u... s.85).aspx
В Requirements:
Header Wtsapi32.h
Library Wtsapi32.lib
DLL Wtsapi32.dll
1
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
23.07.2013, 02:53  [ТС] 5
gray_fox, хм, он подхватил хедер, я почему-то привык, что раз есть функция, значит и реализация есть
Спасибо, щас буду пробовать добавить в проект.

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

Не по теме:

Извиняюсь за глупый вопрос, как либу подрубить - тупо закинуть в debug?

0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
23.07.2013, 02:55 6
Цитата Сообщение от Psilon Посмотреть сообщение
он подхватил хедер
Компилятору достаточно прототипа, линковщику нужна реализация.
1
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
23.07.2013, 02:55 7
Psilon, не надо никуда кидать, смотри в настройках проекта...
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
23.07.2013, 02:55 8
Цитата Сообщение от Psilon Посмотреть сообщение
Извиняюсь за глупый вопрос, как либу подрубить - тупо закинуть в debug?
Среда какая?
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
23.07.2013, 02:57  [ТС] 9
alsav22, уже нашел - Visual Studio, в настройках проекта в настройках линковщика пункт "доп. каталоги библиотек". Выбрал нужную папку, но ему пофигу.
0
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
23.07.2013, 02:58 10
Psilon, а саму библиотеку добавить в зависимости?
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
23.07.2013, 03:03  [ТС] 11
gray_fox, ну в проекте во вкладке "внешние зависимости" он есть (в смысле хедер)... dll-ку я в папку кинул и ему её указал. Чего ему еще надо?

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

Не по теме:

Эх, эт тебе не решарпер, он тебе сам подскажет имя класса, сам тебе для него dll-ку найдет, сам и подключит, и в проекте пропишет... Эх, прогресс, однако :) Развращает

0
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
23.07.2013, 03:09 12
Открыл таки студию...
Миниатюры
Ошибка линковщика LNK2019: ссылка на неразрешенный внешний символ  
1
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
23.07.2013, 03:10 13
В свойствах проекта - Компоновщик - Ввод - Дополнительные зависимости, прописать библиотеку.
1
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
23.07.2013, 03:10 14
Цитата Сообщение от Psilon Посмотреть сообщение
dll-ку я в папку кинул и ему её указал
Это ни к чему
1
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
23.07.2013, 03:13  [ТС] 15
Ясн, спасибо.

Как все сложно оказыватеся. Привык уже Right click -> Add reference. А то и просто NuGet
0
alsav22
23.07.2013, 03:19
  #16

Не по теме:

Цитата Сообщение от Psilon Посмотреть сообщение
Привык уже Right click -> Add reference. А то и просто NuGet
Это где так?

0
gray_fox
23.07.2013, 03:22
  #17

Не по теме:

Цитата Сообщение от Psilon Посмотреть сообщение
Как все сложно оказыватеся.
Да нет, не сложно, просто это не шарп)
Цитата Сообщение от alsav22 Посмотреть сообщение
Это где так?
В Решарпере наверное...

0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
23.07.2013, 03:24  [ТС] 18
Вопрос все по тому же коду: когда ввожу локальный адрес своего компа - работает. Стоит ввести другой - выдает ошибку 87. нагуглить не получилось, что она значит. Итоговый код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include "wtsapi32.h"
 
 
int main()
{
    char* title = "Hello";
    int tlen = strlen(title);
    char* msg = "Terminal Service!";
    int mlen = strlen(msg);
    DWORD *resp = (DWORD*)malloc(sizeof(DWORD*));
    HANDLE hServer = WTSOpenServer("MICROSOFT-PC");
    const int session = WTS_CURRENT_SESSION;
    
    int result = WTSSendMessage(hServer, session, title, tlen, msg, mlen, 0, 0, resp, 0);
    int error = GetLastError();
    printf("%i %i %i", result, error, *resp);
    getchar();
 
    return 0;
}
Хотя комп указал правильно:
Миниатюры
Ошибка линковщика LNK2019: ссылка на неразрешенный внешний символ  
0
Psilon
23.07.2013, 03:27  [ТС]
  #19

Не по теме:

gray_fox, да не, в стандартной студии это доступно. В решпрере все намного прикольнее - пишешь что-нибудь вроде wtsos (по заглваным буквам WTSOpenServer), он тебе говорит

Ошибка линковщика LNK2019: ссылка на неразрешенный внешний символ


остается только выбрать нужный файлик или создать новый... В общем - халява, ведь все это он определил по одному слову - имени класса, который я собираюсь использовать. В восьмой версии его можно даже не дописывать - а она вышла неделю назад, пока не соизволил купить :)

0
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
23.07.2013, 03:29 20
Цитата Сообщение от Psilon Посмотреть сообщение
Стоит ввести другой - выдает ошибку 87. нагуглить не получилось
Издеваешся?)
http://msdn.microsoft.com/en-u... 85%29.aspx
ERROR_INVALID_PARAMETER

87 (0x57)

The parameter is incorrect.
1
23.07.2013, 03:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.07.2013, 03:29
Помогаю со студенческими работами здесь

Ошибка LNK2019: ссылка на неразрешенный внешний символ
Есть код, который должен складывать элементы классов. Вопрос, как нечистая сила мне мешает...

Ошибка LNK2019 | Ссылка на неразрешенный внешний символ
Всем добрый день! При компиляции возникает ошибка LNK2019, не могу самостоятельно её отыскать....

Ошибка LNK2019 - ссылка на неразрешенный внешний символ
Доброго времени суток. При запуске выдается следующую ошибку: LNK2019 ссылка на неразрешенный...

Ошибка LNK2019: ссылка на неразрешенный внешний символ
Уже который день не могу разобраться с этой проблемой! У меня есть класс Agent, с данными name,...

Ошибка LNK2019 ссылка на неразрешенный внешний символ
Переделывала целочисленнный Список в шаблон + добавила итераторы. но выходят эти ошибки,пофиксить...

Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ
Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ &quot;public: void __thiscall...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru