Помогите разобраться с кодом на C++

компьютеры Компьютеры программирование Досуг C++

Вот ошибки которые возникли в компиляторе:
----------------------------------------------------------------------------------------------------------------------------

- D:\Ñ++\PROJECTS\net2\main.cpp In function 'int WinMain(HINSTANCE, HINSTANCE, LPSTR, int)'::

- 39 D:\Ñ++\PROJECTS\net2\main.cpp:60 '_dupenv_s' was not declared in this scope

- 47 D:\Ñ++\PROJECTS\net2\main.cpp:75 'strtok_s' was not declared in this scope

- 88:22 D:\Ñ++\PROJECTS\net2\main.cpp [Warning] deprecated conversion from string constant to 'LPSTR {aka char*}' [-Wwrite-strings]

----------------------------------------------------------------------------------------------------------------------------
Вот код программы в которой возникли ошибки, кто знает, подскажите как их исправить:
----------------------------------------------------------------------------------------------------------------------------

#include <cstdlib>
#include <stdio.h>
#include <tchar.h>
#include <windows.h>
#include <stdlib.h>
#include <wchar.h>
#include <string.h>



1 char DecodeHex(IN LPSTR str) {
2 char ch;
3
4
5 if (str[0] >= 'A') {
6 ch = ((str[0] & 0xDF) - 'A') + 10;
7 } else {
8 ch = str[0] - '0';
9 }
10
11
12 ch <<= 4;
13
14
15 if (str[1] >= 'A') {
16 ch += ((str[1] & 0xDF) - 'A') + 10;
17 } else {
18 ch += str[1] - '0';
19 }
20
21 return ch;
22 }
23
24
25
26 VOID DecodeStr(IN LPSTR sString) {
27 int src, dst;
28 char ch;
29
30
31 for (src = 0, dst = 0; sString[src]; src++, dst++) {
32
33 ch = sString[src];
34
35
36 ch = (ch == '+') ? ' ' : ch;
37
38
39 sString[dst] = ch;
40
41
42 if (ch == '%') {
43
44 sString[dst] = DecodeHex(&sString[src + 1]);
45 src += 2;
46 }
47 }
48
49
50 sString[dst] = 0;
51 }
52
53 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR lpCmdLine, int nShowCmd) {
54
55 printf("Content-type: text/plain\n\n");
56
57
58 // CONTENT_LENGTH)
59 LPSTR sDataLength;
60 _dupenv_s(&sDataLength, NULL, "CONTENT_LENGTH");
61 int lData = atoi(sDataLength);
62 free(sDataLength);
63
64
65 LPSTR sBuff = new char[lData + 1];
66
67
68
69 fread(sBuff, lData, 1, stdin);
70 sBuff[lData] = 0;
71
72
73
74 LPSTR next_token;
75 LPSTR current_token = strtok_s(sBuff, "&", &next_token);
76 LPSTR lpString = "";
77
78 while(current_token) {
79 DecodeStr(current_token);
80 if (strstr(current_token, "string")) {
81
82 lpString = strchr(current_token, '=') + 1;
83 }
84 current_token = strtok_s(NULL, "&", &next_token);
85 }
86
87
88 printf(_strrev(lpString));
89
90 return 0;
91 }
Ответы:
- 39 D:\Ñ++\PROJECTS\net2\main.cpp:60 '_dupenv_s' was not declared in this scope
>>> "_dupenv_s" не объявлена в этой зоне видимости.
Ищите область видимости. Возможно, что-то не добавили.


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.