Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Бухрыч
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 46
#1

Что нужно сделать, чтобы получить доступ к OpenFileMapping - C#

16.04.2012, 16:11. Просмотров 1168. Ответов 6
Метки нет (Все метки)

Подскажите пожалуйста, кто использовал метод OpenFileMapping?
У меня программа ругается, говорит что такого метода не существует.
Наверное надо добавить какой-то using?
Сейчас имеется:
Код
using System.Runtime.InteropServices;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2012, 16:11
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Что нужно сделать, чтобы получить доступ к OpenFileMapping (C#):

Что нужно сделать, чтобы получить доступ к MapViewOfFile
Очень похожий вопрос я задавал вчера, правда про другую функцию WinAPI....

что нужно изменить чтобы массив С состоял из повторяющихся элемонтов массива А которых нет в В?? срочно нужно(
using System; using System.Collections.Generic; using System.Linq; using...

Что нужно знать, что изучить чтобы взяли на работу?
Всем доброго времени суток. Изучая программирование на C# где то чуть больше...

При перегрузке операторов нужно получить доступ к элементу матрицы
вот столкнулся с проблемой при создании класса матрицы. при перегрузке...

Нужно сделать чтобы в цикле работало не более 10-ти потоков
Доброго времени. Возник коллапс мыслительного процесса. Прошу помощи или...

Что нужно освоить, чтобы писать несложные программы
Вот я хорошо С++ знаю C# слышал почти то же ну допустим пускай я знаю там...

6
kolorotur
Эксперт .NET
9922 / 8307 / 2038
Регистрация: 17.09.2011
Сообщений: 14,300
16.04.2012, 17:10 #2
Так это же WinAPI, а не .NET, причем здесь using?

Вам надо неуправляемую сборку подключать:
C#
1
2
[DllImport("kernel32.dll", SetLastError=true)]
 static extern IntPtr OpenFileMapping(uint dwDesiredAccess, bool bInheritHandle, string lpName);
0
Бухрыч
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 46
16.04.2012, 18:33  [ТС] #3
Да это WinAPI, никогда просто с ним ещё на C# не работал.
Спасибо, сейчас попробую Ваш код.

Добавлено через 37 минут
kolorotur, сделал всё как Вы написали, всё равно ругается:

Error 1 Expected class, delegate, enum, interface, or struct C:\projects.vs8\ftdi\lana_fdoxy\WindowsApplication1\Form1.cs 22
Error 2 The modifier 'extern' is not valid for this item C:\projects.vs8\ftdi\lana_fdoxy\WindowsApplication1\Form1.cs 21

Добавлено через 38 минут
спасибо... с этим разобрался...

теперь только неизвестный параметр FILE_MAP_ALL_ACCESS при вызове метода...
0
Konctantin
938 / 742 / 170
Регистрация: 12.04.2009
Сообщений: 1,700
16.04.2012, 18:37 #4
C#
1
2
3
4
5
6
7
8
9
10
enum FileMappingSecurity : uint
{
    Copy      = 0x000001,
    Write     = 0x000002,
    Read      = 0x000004,
    AllAccess = 0x0F001F,
}
 
[DllImport("kernel32.dll", SetLastError=true)]
static extern IntPtr OpenFileMapping(FileMappingSecurity dwDesiredAccess, bool bInheritHandle, string lpName);
0
kolorotur
Эксперт .NET
9922 / 8307 / 2038
Регистрация: 17.09.2011
Сообщений: 14,300
16.04.2012, 18:37 #5
Оно и понятно - это же переменная, которая у вас в коде нигде не объявлена

C#
1
2
3
4
5
6
7
8
const uint STANDARD_RIGHTS_REQUIRED = 0xF0000;
const uint SECTION_QUERY = 0x01;
const uint SECTION_MAP_WRITE = 0x02;
const uint SECTION_MAP_READ = 0x04;
const uint SECTION_MAP_EXECUTE = 0x08;
const uint SECTION_EXTEND_SIZE = 0x10;
const uint SECTION_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED|SECTION_QUERY|SECTION_MAP_WRITE|SECTION_MAP_READ|SECTION_MAP_EXECUTE|SECTION_EXTEND_SIZE);
const uint FILE_MAP_ALL_ACCESS = SECTION_ALL_ACCESS;
0
Бухрыч
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 46
16.04.2012, 18:46  [ТС] #6
Большое спасибо!

и вопрос на будущее, где можно найти значения таких констант?
0
Konctantin
938 / 742 / 170
Регистрация: 12.04.2009
Сообщений: 1,700
16.04.2012, 18:51 #7
как найти:
находим в мелкосправке описание данной функции, далее смотрим следующе
Requirements
Minimum supported client Windows XP

Minimum supported server Windows Server 2003

Header Winbase.h (include Windows.h)

Library Kernel32.lib

DLL Kernel32.dll

Unicode and ANSI names OpenFileMappingW (Unicode) and OpenFileMappingA (ANSI)
видим это Header Winbase.h (include Windows.h)
вот собственно и ответ на вопрос, в данном хедере находится константы.
0
16.04.2012, 18:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2012, 18:51
Привет! Вот еще темы с решениями:

Что нужно подключить, чтобы воспользоваться array.Min()
int numbers = {90, 3, 56, 1, 9000, 78}; int minValue = numbers.Min(); Для...

Что нужно знать, чтобы написать конструктор сайта
Хочу сам написать диплом - конструктор для создания сайтов (допустим как на...

Что нужно писать, чтобы освоить Xml и XPath
Добрый день. В целях самообучения решил уделить внимание связке Xml, XPath....

что сделать чтобы работало?
в 15ой строке прдчеркивает о и показывает ошибку: the name `io` does not exist...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru