Показать сообщение отдельно

  #10  
Старый 09.07.2019, 12:17
Stiopko
Постоянный
Регистрация: 28.02.2018
Сообщений: 307
С нами: 4319022

Репутация: 113
По умолчанию

почему при втором запросе вылетает игра?

C++:





Код:
void
AddToString
(
char
*
*
myStr
,
const
char
*
sourse
)
{
char
*
newStr
;
if
(
*
myStr
!=
nullptr
)
{
if
(
sizeof
(
*
myStr
)
>=
strlen
(
*
myStr
)
+
strlen
(
sourse
)
+
1
)
{
strcat
(
*
myStr
,
sourse
)
;
return
;
}
else
{
newStr
=
new
char
[
strlen
(
*
myStr
)
+
strlen
(
sourse
)
+
1
]
;
strcpy
(
newStr
,
*
myStr
)
;
strcat
(
newStr
,
sourse
)
;
delete
[
]
*
myStr
;
}
}
else
{
newStr
=
new
char
[
strlen
(
sourse
)
+
1
]
;
strcpy
(
newStr
,
sourse
)
;
}
*
myStr
=
newStr
;
}
const
char
*
SendPost
(
const
char
*
site
,
const
char
*
file
,
char
*
data
,
char
*
*
mainBuf
,
bool
*
isError
)
{
if
(
*
mainBuf
==
nullptr
)
AddToString
(
mainBuf
,
""
)
;
HINTERNET hSession
=
InternetOpenA
(
"Test"
,
INTERNET_OPEN_TYPE_PRECONFIG
,
NULL
,
NULL
,
0
)
;
if
(
hSession
!=
NULL
)
{
HINTERNET hConnect
=
InternetConnectA
(
hSession
,
site
,
INTERNET_DEFAULT_HTTP_PORT
,
NULL
,
NULL
,
INTERNET_SERVICE_HTTP
,
0
,
1
)
;
if
(
hConnect
!=
NULL
)
{
HINTERNET hHttpRequest
=
HttpOpenRequestA
(
hConnect
,
"POST"
,
file
,
NULL
,
NULL
,
0
,
0
,
1
)
;
if
(
hHttpRequest
!=
NULL
)
{
char
szReq
[
1024
]
=
""
,
szBuffer
[
1025
]
;
DWORD dwByteRead
=
0
;
BOOL bRead
;
if
(
*
mainBuf
!=
nullptr
)
mainBuf
[
0
]
=
'\0'
;
LPCSTR header
;
header
=
"Accept: *\/*"
;
HttpAddRequestHeadersA
(
hHttpRequest
,
header
,
strlen
(
header
)
,
HTTP_ADDREQ_FLAG_ADD
)
;
header
=
"Content-Type: application/x-www-form-urlencoded"
;
HttpAddRequestHeadersA
(
hHttpRequest
,
header
,
strlen
(
header
)
,
HTTP_ADDREQ_FLAG_ADD
)
;
if
(
HttpSendRequestA
(
hHttpRequest
,
NULL
,
0
,
data
,
strlen
(
data
)
)
)
{
while
(
true
)
{
bRead
=
InternetReadFile
(
hHttpRequest
,
szBuffer
,
sizeof
(
szBuffer
)
-
1
,
&
dwByteRead
)
;
if
(
bRead
==
FALSE
||
dwByteRead
==
0
)
break
;
szBuffer
[
dwByteRead
]
=
'\0'
;
AddToString
(
mainBuf
,
szBuffer
)
;
}
if
(
isError
!=
nullptr
)
*
isError
=
false
;
}
else
if
(
isError
!=
nullptr
)
*
isError
=
true
;
}
else
if
(
isError
!=
nullptr
)
*
isError
=
true
;
InternetCloseHandle
(
hHttpRequest
)
;
}
else
if
(
isError
!=
nullptr
)
*
isError
=
true
;
InternetCloseHandle
(
hConnect
)
;
}
else
if
(
isError
!=
nullptr
)
*
isError
=
true
;
InternetCloseHandle
(
hSession
)
;
return
*
mainBuf
;
}
 
Ответить с цитированием