Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.97/37: Рейтинг темы: голосов - 37, средняя оценка - 4.97
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,861

Проблема с несовместимостью типов параметров char, const char, STRSAFE_LPWSTR, STRSAFE_LPCWSTR

06.07.2019, 13:35. Показов 9026. Ответов 80
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проблемные вопросы отражены на скрине

Программа написана к заданию:
1. Разработать прикладной протокол для передачи файлов с помощью транспортного протокола TCP.
1.1. Разработать в Visual C++ приложение Windows для копирования файлов по протоколу, разработанному в п.1:
серверное приложение, которое принимает файлы от клиентских приложений и сохраняет их на диске.

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
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
#include <winsock2.h>
#include <Windows.h>
#include <WindowsX.h>
#include <tchar.h>
#include <locale.h>
#include <CommCtrl.h>
#include <Strsafe.h>
#include <string.h>
#include <process.h>
#include <iostream>
#pragma comment ( lib, "ws2_32.lib" )
using namespace std;
#define SHUTDOWN(sock) if(sock != NULL) {shutdown(sock, SD_BOTH); closesocket(sock); sock = NULL;}
struct hostent* hst;
SRWLOCK SrwLock;
WSADATA wsaData;
SOCKET  s;
HANDLE hThread;
HWND hWnd;
HANDLE handleOfClients[20];
sockaddr_in SIN = { 0 };
#pragma pack(push,1)
struct Package
{
    const char recipients[4096];
    const char message[1024];
};
#pragma pack(pop)
TCHAR* host;
int nclients = 0;
Package msg;
SOCKET SocketClients[1024];
char* BaseNameClients[1024];
void GetClientNames(char string[]);
int WritePerSymbol(SOCKET s, char* buf, size_t length);
int ReadPerSymbol(SOCKET s, char* buf, size_t length);
 
unsigned int WINAPI ClientTread(LPVOID client_socket)
{
    SOCKET my_sock;
    my_sock = ((SOCKET*)client_socket)[0];
    const char* NameClients;
    for (;;)
    {
        int n = ReadPerSymbol(my_sock, (char*)& msg, sizeof(msg));
        if (n != SOCKET_ERROR)
        {
            if (strcmp(msg.recipients, "1") == 0)
            {
                int size = 0;
                for (int i = 0; i < nclients; ++i)
                {
                    size = size + strlen(BaseNameClients[i]) + 1;
                }
                NameClients = new char[size + 1];
                strcpy(NameClients, "");
                for (int i = 0; i < nclients; ++i)
                {
                    const char c = strlen(BaseNameClients[i]);
                    StringCchPrintf(NameClients, size + 1, "%s%c%s", NameClients, c, BaseNameClients[i]);
                }
                StringCchCopy(msg.message, 2, "");
                StringCchCopy(msg.recipients, const char(NameClients) + 1, NameClients);
                StringCchCat(msg.recipients, 1, '\0');
                WritePerSymbol(my_sock, (char*)& msg, sizeof(msg));
                delete[] NameClients;
            }
            else
            {
                GetClientNames(msg.recipients);
            }
            if (strcmp(msg.recipients, "0") == 0)
            {
                break;
            }
        }
        else break;
    }
    int currentNameLen = 0;
    getsockname(my_sock, NULL, &currentNameLen);
    char* CurrentName = new char[currentNameLen + 1];
    int err = getsockname(my_sock, (sockaddr*)CurrentName, &currentNameLen);
    if (err != SOCKET_ERROR)
    {
        AcquireSRWLockExclusive(&SrwLock);
        for (int i = 0; i < nclients; ++i)
        {
            if (strcpy(CurrentName, BaseNameClients[i]) == 0)
            {
                CloseHandle(handleOfClients[i]);
                for (int j = i; j < nclients; ++j)
                {
                    BaseNameClients[j] = BaseNameClients[j + 1];
                    SocketClients[j] = SocketClients[j + 1];
                    handleOfClients[j] = handleOfClients[j + 1];
                }
            }
        }
        ReleaseSRWLockShared(&SrwLock);
    }
    delete[]BaseNameClients[nclients];
    nclients--;
    printf("-отключен\n");
    SHUTDOWN(my_sock);
    return 0;
}
 
int _tmain()
{
    setlocale(LC_ALL, "Russian");
    int err = WSAStartup(MAKEWORD(2, 2), &wsaData);
    s = socket(AF_INET, SOCK_STREAM, 0);
    if (s == INVALID_SOCKET)
    {
        printf("Socket error: %d\n", WSAGetLastError());
        WSACleanup();
    }
    SIN.sin_family = AF_INET;
    SIN.sin_port = htons(5150);
    SIN.sin_addr.s_addr = INADDR_ANY;
 
    err = bind(s, (sockaddr*)& SIN, sizeof(SIN));
 
    if (SOCKET_ERROR != err)
    {
        err = listen(s, 5);
    }
 
    if (SOCKET_ERROR != err)
    {
        for (;;)
        {
            sockaddr_in client_addr;
            int client_addr_size = sizeof(client_addr);
            SOCKET client_socket = accept(s, (sockaddr*)& client_addr, &client_addr_size);
            if (INVALID_SOCKET == client_socket)
            {
                nclients++;
                if (WSAEINTR == WSAGetLastError()) break;
            }
            else
            {
                SocketClients[nclients] = client_socket;
                hst = gethostbyaddr((char*)& client_addr.sin_addr.s_addr, 4, AF_INET);
                printf("+%s [%s] был подключен\n",
                    (hst) ? hst->h_name : "", inet_ntoa(client_addr.sin_addr));
                BaseNameClients[nclients] = new char[strlen(hst->h_name)];
                strcpy(BaseNameClients[nclients], hst->h_name);
                //strcat(BaseNameClients[nclients], "%");
                nclients++;
                InitializeSRWLock(&SrwLock);
                handleOfClients[nclients] = (HANDLE)_beginthreadex(NULL, NULL, ClientTread, &client_socket, NULL, NULL);
            }
        }
        WaitForMultipleObjects(nclients, handleOfClients, TRUE, INFINITE);
        SHUTDOWN(s);
    }
}
 
int ReadPerSymbol(SOCKET s, char* buf, size_t length)
{
    int all = length;
    int received = 0;
    while (all > 0)
    {
        received = recv(s, buf, all, 0);
        if (received < 0) return SOCKET_ERROR;
        buf += received;
        all -= received;
    }
    return length;
}
 
int WritePerSymbol(SOCKET s, char* buf, size_t length)
{
    int all = length;
    int sended = 0;
    while (all > 0)
    {
        sended = send(s, buf, all, 0);
        if (sended < 0) return SOCKET_ERROR;
        buf += sended;
        all -= sended;
    }
    return length;
}
 
void GetClientNames(char string[])
{
    unsigned int i = 0;
    unsigned int numOfClients = 0;
    do
    {
        int n = string[i];
        char* clientName = new char[n + 1];
        for (int k = 0; k < n; k++)
        {
            clientName[k] = string[i + 1 + k];
        }
        clientName[n] = '\0';
        cout << clientName << endl;
        strcat(clientName, "%");
        for (int j = 0; j < nclients; ++j)
        {
            if (strcmp(clientName, BaseNameClients[j]) == 0)
            {
                int n = WritePerSymbol(SocketClients[j], (char*)& msg, sizeof(msg));
            }
        }
        numOfClients++;
        delete[]clientName;
        i += n + 1;
    } while (i < 4096 || string[i] != '\0');
    cout << numOfClients << endl;
}
Миниатюры
Проблема с несовместимостью типов параметров char, const char, STRSAFE_LPWSTR, STRSAFE_LPCWSTR  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.07.2019, 13:35
Ответы с готовыми решениями:

CONST_RETURN char *__cdecl strstr (const char *_Str, const char *_SubStr)
#include &lt;stdio.h&gt; #include &lt;string.h&gt; char tracks = { &quot;ya ostavil svoe serdce v harvardskom med univere&quot;, &quot;NewYork New York...

error: no matching function for call to `QObject::connect(QPushButton&, const char[10], QApplication*, const char[8])'
Ошибка понимаю какая, но не понимаю, почему возникла и как исправить!) #include &lt;QtGui&gt; int main(int argc, char *argv) { ...

no matching function for call to 'QObject::connect(QCommandLinkButton*, const char*, cNetwork*, const char*)
компилятор ругается ошибка: no matching function for call to 'QObject::connect(QCommandLinkButton*, const char*, cNetwork*, const char*)'...

80
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,861
06.07.2019, 23:08  [ТС]
Студворк — интернет-сервис помощи студентам
oleg-m1973, Нет возможности просто выбрать файл, а добавляется не понятно что....не пойму
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
06.07.2019, 23:10
Цитата Сообщение от xamelione25 Посмотреть сообщение
не врублюсь что не так или с программой или я что-то делаю....
Ты что-то. Покажи функцию ButtonAdd()
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,861
06.07.2019, 23:11  [ТС]
oleg-m1973, Немного позже....я увидел что у меня в списке появился "DESK...." но выбрав его, набрав набор символов в строке с сообщение, и отправив его, у меня резко программа на сервере просит закрытсья
Миниатюры
Проблема с несовместимостью типов параметров char, const char, STRSAFE_LPWSTR, STRSAFE_LPCWSTR  
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
06.07.2019, 23:14
Цитата Сообщение от xamelione25 Посмотреть сообщение
oleg-m1973, Немного позже....я увидел что у меня в списке появился "DESK...." но выбрав его, набрав набор символов в строке с сообщение, и отправив его, у меня резко программа на сервере просит закрытсья
Ну да, похоже ошибок у тебя там дофигища, что на клиенте, что на сервере. Надо их вычищать, по-очереди.
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,861
06.07.2019, 23:15  [ТС]
oleg-m1973,
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
Покажи функцию ButtonAdd()
Миниатюры
Проблема с несовместимостью типов параметров char, const char, STRSAFE_LPWSTR, STRSAFE_LPCWSTR   Проблема с несовместимостью типов параметров char, const char, STRSAFE_LPWSTR, STRSAFE_LPCWSTR   Проблема с несовместимостью типов параметров char, const char, STRSAFE_LPWSTR, STRSAFE_LPCWSTR  

0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
07.07.2019, 09:32
Достаточно было реализации.
А откуда берутся значения в этом комбо-боксе? Ну и, как минимум нужно проверять ind на CB_ERR
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,861
07.07.2019, 10:07  [ТС]
oleg-m1973,
Миниатюры
Проблема с несовместимостью типов параметров char, const char, STRSAFE_LPWSTR, STRSAFE_LPCWSTR   Проблема с несовместимостью типов параметров char, const char, STRSAFE_LPWSTR, STRSAFE_LPCWSTR  
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
07.07.2019, 10:09
Ты бы сначала сделал, чтоб у тебя сокетные клиент и сервер нормально заработали, а потом разбирался с виндовскими контролами. Это независимые задачи. Не нужно делать всё одновременно.
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,861
07.07.2019, 11:27  [ТС]
oleg-m1973, Но почему-то сообщения передаются то ведь ... а ошибка выбивается видимо насколько я вероятностно понимаю из-за того что что-то видимо с серверным сохранением не правильно выполнено ... но как мне это понять что и где ... фиг его знает.

То есть он принимает сообщение от клиентского компа но пытаясь сохранить у него какой-то лаг происходит
Миниатюры
Проблема с несовместимостью типов параметров char, const char, STRSAFE_LPWSTR, STRSAFE_LPCWSTR  
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,861
07.07.2019, 11:55  [ТС]
oleg-m1973, Причем он принимает корректно (хотя и выдает после тоже ошибку)) только, когда я отправляю "1", а если что-то другое отправляю, то выдает название компа и выбивает ошибку.
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,861
07.07.2019, 21:54  [ТС]
oleg-m1973, Пытаясь сделать всё это пошагово на главном компе ... я вероятно нашел в чем ошибка ... но что делать не знаю ...
Миниатюры
Проблема с несовместимостью типов параметров char, const char, STRSAFE_LPWSTR, STRSAFE_LPCWSTR  
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
07.07.2019, 22:40
xamelione25, у вас clientName расчитан на n + 1 символов (включая ноль). А вы, тем не менее, используете функцию strcat, которая дописывает туда еще символ '%'. Т.к. вы пишете за пределы выделенной памяти, то это приводит к порче данных в куче, а на delete [] это проявляется.
Выделяйте память так, чтобы хватило еще на один символ.
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,861
07.07.2019, 22:52  [ТС]
DrOffset, То есть насколько я понял мне нужно либо поменять strcat на другую функцию, либо сделать не n+1 а к примеру n+10? Я правильно понял???
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
07.07.2019, 23:00
Цитата Сообщение от xamelione25 Посмотреть сообщение
либо поменять strcat на другую функцию
Это не поможет. У вас же памяти не хватает
Менять на другую функцию, все равно что лечить простуду подорожником, вместо молитвы: и то и то бесполезно
В корень проблемы смотрите

Цитата Сообщение от xamelione25 Посмотреть сообщение
либо сделать не n+1 а к примеру n+10? Я правильно понял???
Зачем n + 10?
У вас, судя по коду, только один дополнительный символ там нужен. Ну и сделайте так, что вам мешает?
C++
1
2
3
4
5
6
7
char * clientName = new char[n + 2];
for( /*....*/)
{
   ///........
}
clientName[n] = '%';
clientName[n + 1] = '\0';
и не надо никаких функций.
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,861
07.07.2019, 23:04  [ТС]
DrOffset, Я понимаю что сейчас глупо говорить после ваших слов про достаточный вариант добавить только +2, но я поставил +100. и у меня выбило вот что
Миниатюры
Проблема с несовместимостью типов параметров char, const char, STRSAFE_LPWSTR, STRSAFE_LPCWSTR  
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,861
07.07.2019, 23:08  [ТС]
DrOffset,
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
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
#define _CRT_SECURE_NO_WARNINGS 1
#define _WINSOCK_DEPRECATED_NO_WARNINGS
#include <winsock2.h>
#include <Windows.h>
#include <WindowsX.h>
#include <tchar.h>
#include <locale.h>
#include <CommCtrl.h>
#include <Strsafe.h>
#include <string.h>
#include <process.h>
#include <iostream>
#pragma comment ( lib, "ws2_32.lib" )
using namespace std;
#define SHUTDOWN(sock) if(sock != NULL) {shutdown(sock, SD_BOTH); closesocket(sock); sock = NULL;}
struct hostent* hst;
SRWLOCK SrwLock;
WSADATA wsaData;
SOCKET  s;
HANDLE hThread;
HWND hWnd;
HANDLE handleOfClients[20];
sockaddr_in SIN = { 0 };
#pragma pack(push,1)
struct Package
{
    char recipients[4096];
    char message[1024];
};
#pragma pack(pop)
TCHAR* host;
int nclients = 0;
Package msg;
SOCKET SocketClients[1024];
char* BaseNameClients[1024];
void GetClientNames(char string[]);
int WritePerSymbol(SOCKET s, char* buf, size_t length);
int ReadPerSymbol(SOCKET s, char* buf, size_t length);
 
unsigned int WINAPI ClientTread(LPVOID client_socket)
{
    SOCKET my_sock;
    my_sock = ((SOCKET*)client_socket)[0];
    char* NameClients;
    for (;;)
    {
        int n = ReadPerSymbol(my_sock, (char*)& msg, sizeof(msg));
        if (n != SOCKET_ERROR)
        {
            if (strcmp(msg.recipients, "1") == 0)
            {
                int size = 0;
                for (int i = 0; i < nclients; ++i)
                {
                    size = size + strlen(BaseNameClients[i]) + 1;
                }
                NameClients = new char[size + 1];
                strcpy(NameClients, "");
                for (int i = 0; i < nclients; ++i)
                {
                    const char c = strlen(BaseNameClients[i]);
                    StringCchPrintf(NameClients, size + 1, "%s%c%s", NameClients, c, BaseNameClients[i]);
                }
                StringCchCopy(msg.message, 2, "");
                StringCchCopy(msg.recipients, sizeof(msg.recipients) / sizeof(*msg.recipients), NameClients);
                StringCchCat(msg.recipients, 1, '\0');
                WritePerSymbol(my_sock, (char*)& msg, sizeof(msg));
                delete[] NameClients;
            }
            else
            {
                GetClientNames(msg.recipients);
            }
            if (strcmp(msg.recipients, "0") == 0)
            {
                break;
            }
        }
        else break;
    }
    int currentNameLen = 0;
    getsockname(my_sock, NULL, &currentNameLen);
    char* CurrentName = new char[currentNameLen + 1];
    int err = getsockname(my_sock, (sockaddr*)CurrentName, &currentNameLen);
    if (err != SOCKET_ERROR)
    {
        AcquireSRWLockExclusive(&SrwLock);
        for (int i = 0; i < nclients; ++i)
        {
            if (strcpy(CurrentName, BaseNameClients[i]) == 0)
            {
                CloseHandle(handleOfClients[i]);
                for (int j = i; j < nclients; ++j)
                {
                    BaseNameClients[j] = BaseNameClients[j + 1];
                    SocketClients[j] = SocketClients[j + 1];
                    handleOfClients[j] = handleOfClients[j + 1];
                }
            }
        }
        ReleaseSRWLockShared(&SrwLock);
    }
    delete[]BaseNameClients[nclients];
    nclients--;
    printf("-отключен\n");
    SHUTDOWN(my_sock);
    return 0;
}
 
int _tmain()
{
    setlocale(LC_ALL, "Russian");
    int err = WSAStartup(MAKEWORD(2, 2), &wsaData);
    s = socket(AF_INET, SOCK_STREAM, 0);
    if (s == INVALID_SOCKET)
    {
        printf("Socket error: %d\n", WSAGetLastError());
        WSACleanup();
    }
    SIN.sin_family = AF_INET;
    SIN.sin_port = htons(5150);
    SIN.sin_addr.s_addr = INADDR_ANY;
 
    err = bind(s, (sockaddr*)& SIN, sizeof(SIN));
 
    if (SOCKET_ERROR != err)
    {
        err = listen(s, 5);
    }
 
    if (SOCKET_ERROR != err)
    {
        for (;;)
        {
            sockaddr_in client_addr;
            int client_addr_size = sizeof(client_addr);
            SOCKET client_socket = accept(s, (sockaddr*)& client_addr, &client_addr_size);
            if (INVALID_SOCKET == client_socket)
            {
                nclients++;
                if (WSAEINTR == WSAGetLastError()) break;
            }
            else
            {
                SocketClients[nclients] = client_socket;
                hst = gethostbyaddr((char*)& client_addr.sin_addr.s_addr, 4, AF_INET);
                printf("+%s [%s] был подключен\n", (hst) ? hst->h_name : "", inet_ntoa(client_addr.sin_addr));
                BaseNameClients[nclients] = new char[strlen(hst->h_name)];
                strcpy(BaseNameClients[nclients], hst->h_name);
                //strcat(BaseNameClients[nclients], "%");
                nclients++;
                InitializeSRWLock(&SrwLock);
                handleOfClients[nclients] = (HANDLE)_beginthreadex(NULL, NULL, ClientTread, &client_socket, NULL, NULL);
            }
        }
        WaitForMultipleObjects(nclients, handleOfClients, TRUE, INFINITE);
        SHUTDOWN(s);
    }
}
 
int ReadPerSymbol(SOCKET s, char* buf, size_t length)
{
    int all = length;
    int received = 0;
    while (all > 0)
    {
        received = recv(s, buf, all, 0);
        if (received < 0) return SOCKET_ERROR;
        buf += received;
        all -= received;
    }
    return length;
}
 
int WritePerSymbol(SOCKET s, char* buf, size_t length)
{
    int all = length;
    int sended = 0;
    while (all > 0)
    {
        sended = send(s, buf, all, 0);
        if (sended < 0) return SOCKET_ERROR;
        buf += sended;
        all -= sended;
    }
    return length;
}
 
void GetClientNames(char string[])
{
    unsigned int i = 0;
    unsigned int numOfClients = 0;
    do
    {
        int n = string[i];
        char* clientName = new char[n + 100];
        for (int k = 0; k < n; k++)
        {
            clientName[k] = string[i + 10 + k];
        }
        clientName[n] = '\0';
        cout << clientName << endl;
        strcat(clientName, "%");
        for (int j = 0; j < nclients; ++j)
        {
            if (strcmp(clientName, BaseNameClients[j]) == 0)
            {
                int n = WritePerSymbol(SocketClients[j], (char*)& msg, sizeof(msg));
            }
        }
        numOfClients++;
        delete[]clientName;
        i += n + 100;
    } while (i < 4096 || string[i] != '\0');
    cout << numOfClients << endl;
}
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
07.07.2019, 23:15
Цитата Сообщение от xamelione25 Посмотреть сообщение
у меня выбило вот что
Это просто говорит о том, что эта ошибка у вас не единственная Одну исправили и чуть дальше по контексту выполнения вылезла еще одна. +2 достаточно, как я и указал выше.
Новую ищите отладчиком.
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,861
07.07.2019, 23:21  [ТС]
DrOffset, А это о чём-то может сказать???
Миниатюры
Проблема с несовместимостью типов параметров char, const char, STRSAFE_LPWSTR, STRSAFE_LPCWSTR  
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
07.07.2019, 23:25
Цитата Сообщение от xamelione25 Посмотреть сообщение
А это о чём-то может сказать???
О том, что у вас n почему-то очень большого размера.

Добавлено через 2 минуты
Скорее всего это потому, что значение отрицательное (при преобразовании к unsigned получается очень большое число).
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,861
07.07.2019, 23:26  [ТС]
DrOffset,
Цитата Сообщение от DrOffset Посмотреть сообщение
очень большого размера.
Ну я забил в отправку сообщение "12" ... почему очень большое??? Или может он просто все отправляемое он не правильно идентифицирует???

Добавлено через 45 секунд
Цитата Сообщение от DrOffset Посмотреть сообщение
Скорее всего это потому, что значение отрицательное (при преобразовании к unsigned получается очень большое число).
А что мне с этим теперь делать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.07.2019, 23:26

Чем отличаются объявления const char* и const* char
Прошу объяснить мне, чем отличаются объявления const char* и const* char и как объявить: указатель на константный массив символов, ...

Ошибка: "char *concat(char *,.)": невозможно преобразовать аргумент 1 из "const char [4]" в "char *"
делал задание, но на строке 36 строке пишет, что &quot;char *concat(char *,...)&quot;: невозможно преобразовать аргумент 1 из &quot;const char &quot;...

Переход с 10 на 17 Студию 2440 =: невозможно преобразовать "const char [2] в char*
Доброго Нового года! Через пару дней сдавать контрольную работу, которую сделал ещё вначале осени, а тут совсем нелепая проблема....

Error C2664: sprintf: невозможно преобразовать параметр 1 из 'const char *' в 'char *'
error C2664: sprintf: невозможно преобразовать параметр 1 из 'const char *' в 'char *' void crpost(const statep &amp;struc1) { ...

Ошибка в коде: несовместимы типы операндов (char и const char)
Текст не содержит знаков препинания и набран одинаковым шрифтом. Составить программу определения коли-чества использования в тексте:...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №3)
Maks 15.11.2026
Обновленная версия предыдущей обработки. Изменения коснулись букв: Ъ, Ы, Ь, Э, отображения которых зависят от положения реквизита "Транслитерация имён". Изменено отображение буквы Й. Добавлена. . .
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru