Нельзя использовать для инициализации сущности типа "LPSTR"
Как исправить ошибку: значение типа "сonst char *" нельзя использовать для инициализации сущности типа "LPSTR" (ругается на имя канала)
#include <Windows.h>
#include <conio.h>
#include <iostream>
int main()
{
// Флаг успешного создания канала
BOOL fConnected;
// Идентификатор канала Pipe
HANDLE hNamedPipe;
// Имя создаваемого канала Pipe
LPSTR lpszPipeName = "\\\\.\\pipe\\$MyPipe$";
// Буфер для передачи данных через канал
char szBuf[512];
// Количество байт данных, принятых через канал
DWORD cbRead;
// Количество байт данных, переданных через канал
DWORD cbWritten;
printf("Named pipe server demo\n"
"(C) A. Frolov, 1996, Email: [email protected]\n");
// Создаем канал Pipe, имеющий имя lpszPipeName
hNamedPipe = CreateNamedPipe(
lpszPipeName,
PIPE_ACCESS_DUPLEX,
PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT,
PIPE_UNLIMITED_INSTANCES,
512, 512, 5000, NULL);
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Попробуйте
char lpszPipeName[] = "\\\\.\\pipe\\$MyPipe$";
Дело в том, что LPSTR — это char*, т.е. указатель на изменяемую строку, а "\\\\.\\pipe\\$MyPipe$" — литерал, т.е. строка неизменяемая...