Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 19.11.2014
Сообщений: 3

CreateFileMapping ошибка в CopyMemory

19.11.2014, 23:36. Показов 3072. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Жалуестя на
Кликните здесь для просмотра всего текста
1>c:\users\сергей\documents\visual studio 2010\projects\lab2\lab2\lab2.cpp(45): error C2664: strlen: невозможно преобразовать параметр 1 из "TCHAR [27]" в "const char *"
в строчке
C++
1
 CopyMemory((PVOID)pBuf, szMsg, strlen(szMsg));
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
#include "StdAfx.h"
#include <windows.h>
#include <stdio.h>
#include <conio.h>
 
#define BUF_SIZE 256
TCHAR szName[]=TEXT("MyFileMappingObject");
TCHAR szMsg[]=TEXT("Message from first process");
 
 
void main()
{
   HANDLE hMapFile;
   LPCTSTR pBuf;
 
   hMapFile = CreateFileMapping(
                 INVALID_HANDLE_VALUE,    // использование файла подкачки
                 NULL,                    // защита по умолчанию 
                 PAGE_READWRITE,          // доступ к чтению/записи
                 0,                       // макс. размер объекта 
                 BUF_SIZE,                // размер буфера  
                 szName);                 // имя отраженного в памяти объекта
 
   if (hMapFile == NULL || hMapFile == INVALID_HANDLE_VALUE) 
   { 
      printf("Не может создать  отраженный в памяти объект (%d).\n",
      GetLastError());
      return;
   }
   pBuf = (LPTSTR) MapViewOfFile(hMapFile,   // дескриптор  отраженного
                                             // в памяти объекта
                        FILE_MAP_ALL_ACCESS, // разрешение чтения/записи
                        0,                   
                        0,                   
                        BUF_SIZE);           
 
   if (pBuf == NULL) 
   { 
      printf("Представление проецированного файла не возможно (%d).\n",
      GetLastError()); 
      return;
   }
 
   
   CopyMemory((PVOID)pBuf, szMsg, strlen(szMsg));
   getch();
 
   UnmapViewOfFile(pBuf);
 
   CloseHandle(hMapFile);
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.11.2014, 23:36
Ответы с готовыми решениями:

CreateFileMapping: ошибка с кодом 87 при создании проекции флэш-накопителя
При создании проекции флэш-накопителя, функция возвращает NULL. При этом я открываю флэш-накопитель как обычный файл: hFlashDrive =...

CopyMemory ?
Как использовать CopyMemory в алгоритмах сортировки с различными типами данных ??? Пытался использовать в текстовых списках, программа...

CopyMemory жжет
#If Win64 Then Private Declare PtrSafe Sub CopyMemory Lib &quot;kernel32&quot; Alias &quot;RtlMoveMemory&quot; (Destination As Any, Source As Any, ByVal...

2
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
19.11.2014, 23:47
strlen замените на _tcslen
1
120 / 142 / 46
Регистрация: 31.10.2014
Сообщений: 721
Записей в блоге: 1
21.11.2014, 05:28
Вообще правильно так
CopyMemory((PVOID)pBuf, szMsg, lstrlen(szMsg) * sizeof(TCHAR));
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.11.2014, 05:28
Помогаю со студенческими работами здесь

Почему указатель нулевой при CopyMemory
Здрасть. Функция CopyMemory говорит что указатель is 0. Как исправить? *Old = AllocateMemory(1) Procedure FrameCallback(lwnd.l,...

memcpy/CopyMemory + 2-мерный динамический массив
Третий день в ступоре из-за ругательства компилятора. Есть проблема: нужно скопировать данные из одного двумерного динамического массива в...

CreateFileMapping
Если у кого-нибудь есть пример чтения и записи в файл в оперативной памяти, напишите, пожалуйста. Мне нужно, чтобы приложение при повторном...

Работа с CreateFileMapping
Здраствуйте! есть задача: организовать область памяти с помощью CreateFileMapping, после запустить 8 процесов, которые по таймауту 500 мс...

В WinXP не работает API процедура CopyMemory. Что делать?
В WinXP не работает API процедура CopyMemory. Что делать? Public Declare Sub CopyMemory Lib 'kernel32' Alias 'RtlMoveMemory' _ ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru