Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/117: Рейтинг темы: голосов - 117, средняя оценка - 4.67
Light Knight
 Аватар для Aaxenon
106 / 29 / 5
Регистрация: 03.06.2010
Сообщений: 361

telnet через С++

05.07.2010, 15:34. Показов 23970. Ответов 49
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
задание такое:
нужно через командную строку в telnet и оттуда зайти на switch'и и дать им команду reboot
если что не ясно, спрашивайте
заранее благодарен
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.07.2010, 15:34
Ответы с готовыми решениями:

Проблемы общения TELNET - клиента с Microsoft Telnet server
Задание по сетям на семестр было в написании кросс-платформенного (ха ха) консольного клиента, реализующего минимальное подмножество опций...

Можно запросом через telnet серверу получить часовой пояс клиента?
Пишу сервер(windows). Можно ли как-то запросом через telnet серверу получить часовой пояс клиента(это что бы вернуть клиенту время в его...

Хочу подключится через telnet к удаленному компютеру, пишу telnet ip и пишет не удалось открыть подключение к
Хочу подключится через telnet к удаленному компютеру, пишу telnet ip и пишет не удалось открыть подключение к этому узлу на порт 23, сбой...

49
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
12.07.2010, 23:12
Студворк — интернет-сервис помощи студентам
Смотри примеры вызова DLL на Си и работу с указателями.
Если хочешь, выложу пример работы с этой DLL на бейсике, но вряд ли он поможет.

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

Не по теме:

Цитата Сообщение от easybudda Посмотреть сообщение
Как-то обычно наоборот бывает
У каждого правила, есть исключения.

0
Light Knight
 Аватар для Aaxenon
106 / 29 / 5
Регистрация: 03.06.2010
Сообщений: 361
12.07.2010, 23:22  [ТС]
если не сложно кинь код, а там уж с инетом попробую разобраться
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
12.07.2010, 23:31
Вот исходник программы, работающей с DLLкой
Код перезагружает модем
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
If OpenLibrary(1,"DSL_ModemControl.dll")=0  ; Открытие библиотеки
  MessageRequester("", "Нет DSL_ModemControl.dll", #MB_OK|#MB_ICONERROR)
  End
EndIf
 
CallFunction(1,"DSL_Init")   ; Инициализация DLLки
Connect=CallFunction(1,"DSL_Open", @"192.168.1.1", @"admin", @"admin") ; Установка связи с модемом
If Connect>0
  Delay(400)
  CallFunction(1,"DSL_SendModemData", Connect, @"reboot",400) ; Передача команды "reboot" модему
  Delay(800)
  MessageRequester("", "Модем перезагружается")
  CallFunction(1,"DSL_Close", Connect)                       ; Разрыв связи с модемом.
Else
  Select Connect
    Case 0
      MessageRequester("", "Нет связи с модемом", #MB_OK|#MB_ICONERROR)
    Case -1
      MessageRequester("", "Нет ответа от модема", #MB_OK|#MB_ICONERROR)
    Case -2
      MessageRequester("", "Неправильный логин или пароль", #MB_OK|#MB_ICONERROR)
  EndSelect
EndIf
Все файлы, в т. ч. и скомпилированая программа в архиве.
Вложения
Тип файла: rar DSL_Modem.rar (9.8 Кб, 29 просмотров)
1
Light Knight
 Аватар для Aaxenon
106 / 29 / 5
Регистрация: 03.06.2010
Сообщений: 361
13.07.2010, 15:30  [ТС]
ругается на dllку походу
Code
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C2018: неизвестный знак "0x3"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C2018: неизвестный знак "0x4"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C2018: неизвестный знак "0x40"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "яяё"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C2018: неизвестный знак "0xe"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C2018: неизвестный знак "0x1f"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "Ђ"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C2018: неизвестный знак "0xe"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "є"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "ґ"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "Н"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C2143: синтаксическая ошибка: отсутствие ";" перед "!"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C2018: неизвестный знак "0x1"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C2588: ::!ё: недопустимая глобальная переменная finalizer
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "LН"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C2143: синтаксическая ошибка: отсутствие ";" перед "!"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C2588: ::!This: недопустимая глобальная переменная finalizer
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "program"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "cannot"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "be"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "run"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "in"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "DOS"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "mode"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C2143: синтаксическая ошибка: отсутствие ";" перед "."
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(1): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x1"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x6"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x2"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0xe"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x1"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x2"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x14"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x10"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x10"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x10"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x10"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x2"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x4"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x4"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x3"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x10"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x10"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x10"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x10"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x10"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x40"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x3"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x60"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x1"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x40"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x5"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x4"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x10"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x6"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x4"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x60"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0x12"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(2): error C2018: неизвестный знак "0xe"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(3): error C2018: неизвестный знак "0x60"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(3): error C2018: неизвестный знак "0x2"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(3): error C2018: неизвестный знак "0x18"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(3): error C2018: неизвестный знак "0x40"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(3): error C2018: неизвестный знак "0x40"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(3): error C2018: неизвестный знак "0x2"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(3): error C2018: неизвестный знак "0x40"
1>c:\users\администратор\documents\visual studio 2010\projects\852\852\DSL.dll(3): error C2018: неизвестный знак "0x4"
1>
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
13.07.2010, 15:50
Цитата Сообщение от RoY_Mu$T@nG Посмотреть сообщение
ругается на dllку походу
Как её подключал к своей программе?

DLL это уже скомпилированая библиотека функций и при правлильном подключении (загрузка - LoadLibrary, получение адреса функции - GetProcAddress и т. д., или использование статической линковки), таких ошибок просто не может быть!
0
Light Knight
 Аватар для Aaxenon
106 / 29 / 5
Регистрация: 03.06.2010
Сообщений: 361
13.07.2010, 17:18  [ТС]
я в инете поискал и подключил так:
C++
1
#include "DLS.dll"
она у меня называется DLS

Добавлено через 26 минут
еще покопался в инете. видимо это неверный способ включения дллки...подскажите как правильно
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
13.07.2010, 17:18
Цитата Сообщение от RoY_Mu$T@nG Посмотреть сообщение
#include
Так подключаются дополнительные файлы с исходным текстом.
DLL подключаются по другому, примерно так
Dll
Создание DLL
Не вызвать функцию с DLL

В крайнем случае, мучаем гугль
1
Light Knight
 Аватар для Aaxenon
106 / 29 / 5
Регистрация: 03.06.2010
Сообщений: 361
14.07.2010, 13:18  [ТС]
нашел, но у меня не получается...покажите конкретный пример..что и куда нужно сунуть

Добавлено через 19 часов 47 минут
need help...
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
14.07.2010, 14:25
Цитата Сообщение от RoY_Mu$T@nG Посмотреть сообщение
need help...
Ладно, давай по другому.
Знаешь как использовать LIB файлы в своей программе?
0
Light Knight
 Аватар для Aaxenon
106 / 29 / 5
Регистрация: 03.06.2010
Сообщений: 361
14.07.2010, 15:24  [ТС]
на практике никогда не пробовал, но теоретически знаю
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
14.07.2010, 15:46
Вот LIB и EXP файлы для работы с DLLкой.
Вложения
Тип файла: rar DSL_Modem.rar (7.7 Кб, 33 просмотров)
1
Light Knight
 Аватар для Aaxenon
106 / 29 / 5
Регистрация: 03.06.2010
Сообщений: 361
14.07.2010, 18:48  [ТС]
вот мой код, но он не работает, помогите исправить ошибки
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
#pragma comment(lib, "DSL_ModemControl.lib")
#include <windows.h>
#include <iostream>
#define DLLEXPORT extern "C" __declspec(dllexport)
using namespace std;
bool APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved)
{
    return TRUE;
}
DLLEXPORT void DSL_Open(char a, char b, char c)
{
    cin >> a >> b >> c;
}
DLLEXPORT void DSL_SendModemData(char d)
{
    cin >> d;
}
int main()
{
    char a, b, c, d;
    DLLEXPORT void DSL_Init();
    DLLEXPORT void DSL_Open(a, b, c);
    DLLEXPORT void DSL_SendModemData(d);
    DLLEXPORT void DSL_Close();
    return 0;
}
dll подключается безупречно, на функции вроде тоже не ругается, а ругается он только на то, что расположено в int main()
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
14.07.2010, 19:14
У функции DSL_SendModemData - 3 аргумента.
У функции DSL_Close - 1 аргумент.

Все переменные аргументов занимают 4 байта (в Си, тип Integer кажется).

В архиве ведь есть файл с описанием функций.
1
Light Knight
 Аватар для Aaxenon
106 / 29 / 5
Регистрация: 03.06.2010
Сообщений: 361
14.07.2010, 22:19  [ТС]
а что должны возвращать
Code
1
2
3
DSL_Open
DSL_SendModemData
DSL_Close
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
14.07.2010, 23:04
Функция DSL_Init возвращает число, не равное нулю при успешной инициализации библиотеки.
Функция DSL_Open возвращает идентификатор связи (больше нуля), который используется в функциях DSL_SendModemData и DSL_Close или код ошибки, равный или меньше нуля.
Функция DSL_SendModemData возвращает указатель на строку с ответом модема.
Функция DSL_Close ничего не возвращает.

Вот описание функций, из архива с DLL

DSL_Init()

Инициализация библиотеки DSL_ModemControl.dll. Эта функция должна однократно вызываться перед использованием других функций библиотеки.




Out = DSL_SendModemData(Connect, Command.s, TimeOut)

Connect – Идентификатор связи. Его возвращает функция DSL_Open при установке связи с модемом.
Command – Указатель на строку с командой для модема
TimeOut – Время в миллисекундах, ожидания ответа от модема.
Out – Указатель на строку с ответом модема

Эта функция передаёт команду модему по протоколу TELNET и возвращает ответ модема.




Connect = DSL_Open(IP_Address.s, Login.s, Password.s)

IP_Address – указатель на строку с IP адресом модема
Login - указатель на строку с логином модема
Password - указатель на строку с паролем доступа к модему
Connect - Идентификатор связи – число больше нуля. В случае ошибки, функция вернёт ноль или отрицательное число.
Описание сообщений об ошибках:
0 - Нет связи с модемом
–1 - модем не ответил
-2 - Неправильный логин или пароль

Эта функция устанавливает связь с модемом и возвращает идентификатор связи.





DSL_Close(Connect)

Connect – Идентификатор связи. Его возвращает функция DSL_Open при установке связи с модемом.

Эта функция разрывает связь с модемом.
1
Light Knight
 Аватар для Aaxenon
106 / 29 / 5
Регистрация: 03.06.2010
Сообщений: 361
15.07.2010, 19:06  [ТС]
а что значит, ну например, Password.s

Добавлено через 12 минут
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
#include <climits>
#include <cstring>
#define DLLEXPORT extern "C" __declspec(dllexport)
using namespace std;
bool APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved)
{
    return TRUE;
}
DLLEXPORT void DSL_Init();
DLLEXPORT char DSL_Open(char IP_Address, char Login, char Password);
DLLEXPORT char DSL_SendModemData(char Connect, char Command, char TimeOut);
DLLEXPORT int DSL_Close(int Connect);
int main()
{
    int Connect = 1;
    string *Out;
    char IP_Address, Login, Password, Connect, Command, TimeOut;
    DSL_Init();
    Connect = DSL_Open(IP_Address, Login, Password);
    DSL_Open(IP_Address, Login, Password);
    Out = DSL_Open(IP_Address, Login, Password);
    DSL_SendModemData(Connect, Command, TimeOut);
    DSL_Close(Connect);
    return 0;
}
по сути как то так, но я еще не описывал функции и немного запутался с Out и Connect
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
15.07.2010, 19:20
Цитата Сообщение от RoY_Mu$T@nG Посмотреть сообщение
Password.s
Это значит что переменная строковая.
Но функции нужно передавать указатель на строку.

Как-то вот так должно быть, но я в Си не очень разбираюсь
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
#include <climits>
#include <cstring>
#define DLLEXPORT extern "C" __declspec(dllexport)
using namespace std;
bool APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved)
{
        return TRUE;
}
DLLEXPORT int DSL_Init();
DLLEXPORT int DSL_Open(int *IP_Address, int *Login, int *Password);
DLLEXPORT int DSL_SendModemData(int Connect, int *Command, int TimeOut);
DLLEXPORT void DSL_Close(int Connect);
int main()
{
        int Connect = 0, TimeOut=400;
        string *Out;
        char IP_Address, Login, Password,  Command;
        DSL_Init();
        Connect = DSL_Open(&IP_Address, &Login, &Password);
       // DSL_Open(IP_Address, Login, Password);
       // Out = DSL_Open(IP_Address, Login, Password);
        DSL_SendModemData(Connect, &Command, TimeOut);
        DSL_Close(Connect);
        return 0;
}
0
Light Knight
 Аватар для Aaxenon
106 / 29 / 5
Регистрация: 03.06.2010
Сообщений: 361
16.07.2010, 16:46  [ТС]
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
#pragma comment(lib, "DSL_ModemControl.lib")
#include <windows.h>
#include <climits>
#include <string.h>
#define DLLEXPORT extern "C" __declspec(dllexport)
bool APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved)
{
        return TRUE;
}
DLLEXPORT int DSL_Init();
DLLEXPORT int DSL_Open(int *IP_Address, int *Login, int *Password);
DLLEXPORT int DSL_SendModemData(int Connect, int *Command, int TimeOut);
DLLEXPORT void DSL_Close(int Connect);
int main()
{
        int Connect = 0, TimeOut=400;
        string *Out;
        char IP_Address, Login, Password,  Command;
        DSL_Init();
        Connect = DSL_Open(&IP_Address, &Login, &Password);
        DSL_Open(IP_Address, Login, Password);
        Out = DSL_Open(IP_Address, Login, Password);
        DSL_SendModemData(Connect, &Command, TimeOut);
        DSL_Close(Connect);
        return 0;
}
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
1>------ Построение начато: проект: asr, Конфигурация: Debug Win32 ------
1>Построение начато 15.07.2010 19:29:44.
1>InitializeBuildStatus:
1>  Обращение к "Debug\asr.unsuccessfulbuild".
1>GenerateTargetFrameworkMonikerAttribute:
1>Целевой объект "GenerateTargetFrameworkMonikerAttribute" пропускается, так как все выходные файлы актуальны по отношению к входным.
1>ClCompile:
1>  gda.cpp
1>gda.cpp(17): error C2065: string: необъявленный идентификатор
1>gda.cpp(17): error C2065: Out: необъявленный идентификатор
1>gda.cpp(20): error C2664: DSL_Open: невозможно преобразовать параметр 1 из "char *" в "int *"
1>          Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>gda.cpp(21): error C2664: DSL_Open: невозможно преобразовать параметр 1 из "char" в "int *"
1>          Для преобразования из целого типа в указатель требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>gda.cpp(22): error C2065: Out: необъявленный идентификатор
1>gda.cpp(22): error C2664: DSL_Open: невозможно преобразовать параметр 1 из "char" в "int *"
1>          Для преобразования из целого типа в указатель требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>gda.cpp(23): error C2664: DSL_SendModemData: невозможно преобразовать параметр 2 из "char *" в "int *"
1>          Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>
1>СБОЙ построения.
1>
Добавлено через 21 час 16 минут
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
47
48
#pragma comment(lib, "DSL_ModemControl.lib")
#include <windows.h>
#include <climits>
#include <string>
#include <iostream>
using namespace std;
#define DLLEXPORT extern "C" __declspec(dllexport)
bool APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved)
{
    return TRUE;
}
DLLEXPORT void DSL_Init();
DLLEXPORT char DSL_Open(char *IP_Address, char *Login, char *Password)
{
    int Connect = 0;
    return Connect;
}
DLLEXPORT void DSL_SendModemData(int Connect, char *Command, int TimeOut);
DLLEXPORT int DSL_Close(int Connect);
int main()
{
    const size_t size = 50;
    int Connect = 0, TimeOut=400;
    char a;
    char IP_Address[size];
    char Login[size];
    strcpy(Login, "admin");
    char Password[size];
    char Command[size];
    strcpy(Command, "reboot");
    cout << "Enter IP: ";
    cin.getline(IP_Address, size);
    cout << "Enter Password: ";
    cin.getline(Password, size);
    cout << "Do you want reboot the switch? (y/n)" << endl;
    cin >> a;
    if(a=='y')
    {
        DSL_Init();
        DSL_Open(IP_Address, Login, Password);
        DSL_SendModemData(Connect, Command, TimeOut);
        DSL_Close(Connect);
        cout << "Successful" << endl;
    }
    else
        cout << "Programm has been canceled" << endl;
    return 0;
}
вот код, вроде бы всё правильно, однако какая то фигня
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
16.07.2010, 17:28
А вот так
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
47
48
#pragma comment(lib, "DSL_ModemControl.lib")
#include <windows.h>
#include <climits>
#include <string>
#include <iostream>
using namespace std;
#define DLLEXPORT extern "C" __declspec(dllexport)
bool APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved)
{
        return TRUE;
}
DLLEXPORT void DSL_Init();
DLLEXPORT int DSL_Open(char *IP_Address, char *Login, char *Password)
{
        int Connect = 0;
        return Connect;
}
DLLEXPORT void DSL_SendModemData(int Connect, char *Command, int TimeOut);
DLLEXPORT int DSL_Close(int Connect);
int main()
{
        const size_t size = 50;
        int Connect = 0, TimeOut=400;
        char a;
    char IP_Address[size];
        char Login[size];
        strcpy(Login, "admin");
        char Password[size];
        strcpy(Password, "admin");
        char Command[size];
        strcpy(Command, "reboot");
        cout << "Enter IP: ";
        cin.getline(IP_Address, size);
        cout << "Enter Password: ";
        cin.getline(Password, size);
        cout << "Do you want reboot the switch? (y/n)" << endl;
        cin >> a;
        if(a=='y')
        {
                DSL_Init();
                Connect = DSL_Open(IP_Address, Login, Password);
                DSL_SendModemData(Connect, Command, TimeOut);
                DSL_Close(Connect);
                cout << "Successful" << endl;
        }
        else
                cout << "Programm has been canceled" << endl;
    return 0;
0
Light Knight
 Аватар для Aaxenon
106 / 29 / 5
Регистрация: 03.06.2010
Сообщений: 361
16.07.2010, 18:11  [ТС]
точно так же
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
1>ClCompile:
1>  gda.cpp
1>gda.cpp(27): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          C:\Program Files\Microsoft Visual Studio 10.0\VC\include\string.h(105): см. объявление "strcpy"
1>gda.cpp(29): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          C:\Program Files\Microsoft Visual Studio 10.0\VC\include\string.h(105): см. объявление "strcpy"
1>gda.cpp(31): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          C:\Program Files\Microsoft Visual Studio 10.0\VC\include\string.h(105): см. объявление "strcpy"
1>C:\Users\Администратор\documents\visual studio 2010\Projects\asr\asr\gda.cpp : warning C4747: Вызов управляемого "_DllMain@12": управляемый код может не выполняться при блокировании загрузчика, это относится также к точкам входа DLL и поступившим из них вызовам
1>  Для всех выходных данных обновления не требуется.
1>Link:
1>     Создается библиотека C:\Users\Администратор\documents\visual studio 2010\Projects\asr\Debug\asr.lib и объект C:\Users\Администратор\documents\visual studio 2010\Projects\asr\Debug\asr.exp
1>gda.obj : error LNK2028: ссылка на неразрешенную лексему (0A00038C) "extern "C" void __cdecl DSL_SendModemData(int,char *,int)" (?DSL_SendModemData@@$$J0YAXHPADH@Z) в функции "int __cdecl main(void)" (?main@@$$HYAHXZ)
1>gda.obj : error LNK2028: ссылка на неразрешенную лексему (0A0003D7) "extern "C" int __cdecl DSL_Close(int)" (?DSL_Close@@$$J0YAHH@Z) в функции "int __cdecl main(void)" (?main@@$$HYAHXZ)
1>gda.obj : error LNK2028: ссылка на неразрешенную лексему (0A0003D8) "extern "C" void __cdecl DSL_Init(void)" (?DSL_Init@@$$J0YAXXZ) в функции "int __cdecl main(void)" (?main@@$$HYAHXZ)
1>gda.obj : error LNK2019: ссылка на неразрешенный внешний символ "extern "C" int __cdecl DSL_Close(int)" (?DSL_Close@@$$J0YAHH@Z) в функции "int __cdecl main(void)" (?main@@$$HYAHXZ)
1>gda.obj : error LNK2019: ссылка на неразрешенный внешний символ "extern "C" void __cdecl DSL_SendModemData(int,char *,int)" (?DSL_SendModemData@@$$J0YAXHPADH@Z) в функции "int __cdecl main(void)" (?main@@$$HYAHXZ)
1>gda.obj : error LNK2019: ссылка на неразрешенный внешний символ "extern "C" void __cdecl DSL_Init(void)" (?DSL_Init@@$$J0YAXXZ) в функции "int __cdecl main(void)" (?main@@$$HYAHXZ)
1>C:\Users\Администратор\documents\visual studio 2010\Projects\asr\Debug\asr.exe : fatal error LNK1120: 6 неразрешенных внешних элементов
1>
1>СБОЙ построения.
Добавлено через 22 секунды
где модераторы, которые хорошо знают язык т.т
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.07.2010, 18:11
Помогаю со студенческими работами здесь

К роутеру через Telnet
Доброго дня. Пишу прогу, среди прочего в ней надо приконнектится к DSL роутеру по телнет. Код такой: SOCKADDR_IN saddr; ... ...

Telnet через PHP
Добрый день. Задача: необходимо сделать веб морду с двумя формами в одну из которых вписывают номер порта, а в другую ip свитча. Затем...

TOR подключение через telnet
1. Скачал tor browser. 2. Запустил tor.exe с параметром -f и указал адрес torcc. 3. Содержимое torcc: ControlPort 9057 ...

Перезагрузить роутер через Telnet
@echo off telnet 192.168.0.1 telnet send reboot pause строка 'telnet send reboot' не хочет выполняться. В этом вся проблема. ...

Подключение к роутеру через telnet
можно ли через telnet подключиться к роутеру? пишет что connecting... и ничего не происходит долгое время. Потом пишет что не...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод Сайт называется reddit: The Thinkpad X220 Tablet is the best budget school laptop period. Это. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru