Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/10: Рейтинг темы: голосов - 10, средняя оценка - 5.00
Psilon
Master of Orion
Эксперт .NET
6036 / 4890 / 903
Регистрация: 10.07.2011
Сообщений: 14,477
Записей в блоге: 5
Завершенные тесты: 4
1

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

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

полный текст:
Ошибка 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.07.2013, 02:39
Ответы с готовыми решениями:

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

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

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

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

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

24
gray_fox
What a waste!
1558 / 1263 / 166
Регистрация: 21.04.2012
Сообщений: 2,642
Завершенные тесты: 3
23.07.2013, 02:41 2
Psilon, надо компоновать с библиотекой, в которой есть реализация этой ф-ии.
1
alsav22
5453 / 4848 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
23.07.2013, 02:42 3
Линковщик не нашёл реализацию WTSSendMessage().
1
gray_fox
What a waste!
1558 / 1263 / 166
Регистрация: 21.04.2012
Сообщений: 2,642
Завершенные тесты: 3
23.07.2013, 02:47 4
Psilon, http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
В Requirements:
Header Wtsapi32.h
Library Wtsapi32.lib
DLL Wtsapi32.dll
1
23.07.2013, 02:47
Psilon
Master of Orion
Эксперт .NET
6036 / 4890 / 903
Регистрация: 10.07.2011
Сообщений: 14,477
Записей в блоге: 5
Завершенные тесты: 4
23.07.2013, 02:53  [ТС] 5
gray_fox, хм, он подхватил хедер, я почему-то привык, что раз есть функция, значит и реализация есть
Спасибо, щас буду пробовать добавить в проект.

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

Не по теме:

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

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

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

Не по теме:

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

0
gray_fox
What a waste!
1558 / 1263 / 166
Регистрация: 21.04.2012
Сообщений: 2,642
Завершенные тесты: 3
23.07.2013, 03:09 12
Открыл таки студию...
1
Миниатюры
Ошибка линковщика LNK2019: ссылка на неразрешенный внешний символ  
alsav22
5453 / 4848 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
23.07.2013, 03:10 13
В свойствах проекта - Компоновщик - Ввод - Дополнительные зависимости, прописать библиотеку.
1
gray_fox
What a waste!
1558 / 1263 / 166
Регистрация: 21.04.2012
Сообщений: 2,642
Завершенные тесты: 3
23.07.2013, 03:10 14
Цитата Сообщение от Psilon Посмотреть сообщение
dll-ку я в папку кинул и ему её указал
Это ни к чему
1
Psilon
Master of Orion
Эксперт .NET
6036 / 4890 / 903
Регистрация: 10.07.2011
Сообщений: 14,477
Записей в блоге: 5
Завершенные тесты: 4
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
Psilon
Master of Orion
Эксперт .NET
6036 / 4890 / 903
Регистрация: 10.07.2011
Сообщений: 14,477
Записей в блоге: 5
Завершенные тесты: 4
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;
}
Хотя комп указал правильно:
0
Миниатюры
Ошибка линковщика LNK2019: ссылка на неразрешенный внешний символ  
Psilon
23.07.2013, 03:27  [ТС]
  #19

Не по теме:

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

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


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

0
gray_fox
What a waste!
1558 / 1263 / 166
Регистрация: 21.04.2012
Сообщений: 2,642
Завершенные тесты: 3
23.07.2013, 03:29 20
Цитата Сообщение от Psilon Посмотреть сообщение
Стоит ввести другой - выдает ошибку 87. нагуглить не получилось
Издеваешся?)
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
ERROR_INVALID_PARAMETER

87 (0x57)

The parameter is incorrect.
1
23.07.2013, 03:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.07.2013, 03:29

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

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

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


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

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

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