Меню

Ошибка активно e0020 идентификатор pcontext не определен

Miristeri

0 / 0 / 0

Регистрация: 05.10.2021

Сообщений: 89

1

Проложение пути к файлу

11.11.2021, 21:19. Показов 4200. Ответов 53

Метки нет (Все метки)


Подскажите какими командами, нужно воспользоваться для возможности прописывания пути файла (диск и файл), для изменения его?

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
#include <iostream>                                   
#include <cstdio>                                     
#include <string>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    // возможность выбрать файл с любого диска
 
 
    // Возможность вносить изменения выбранного нами файла
    string god = "Год";
    string mesiac = "Месяц";
    string den = "День";
    string fale = "Файл";
    int chas, minuta, secunda;
 
    cout << "Введите название файла: ";
    cin >> fale;
    cout << "Введите год: ";
    cin >> god;
    cout << "Введите месяц: ";
    cin >> mesiac;
    cout << "Введите день: ";
    cin >> den;
    cout << "Введите час: ";
    cin >> chas;
    cout << "Введите минута: ";
    cin >> minuta;
    cout << "Введите секунды: ";
    cin >> secunda;
 
    system("pause");
    return 0;
}

Добавлено через 27 минут
Не много переделала:

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
#include <iostream>                                   
#include <cstdio>                                     
#include <string>
#include "Маскрировка.h"
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    string god = "Год";
    string mesiac = "Месяц";
    string den = "День";
    string file = "Файл";
    int chas, minuta, secunda, result;
 
    // возможность выбрать файл с любого диска
    char oldname[] = ".txt";
    char newname[] = ".txt";
 
    cout << "Введите старое название файла: ";
    cin >> oldname;
    cout << "Введите новое название файла: ";
    cin >> newname;
 
    // Возможность вносить изменения выбранного нами файла
    cout << "Введите год: ";
    cin >> god;
    cout << "Введите месяц: ";
    cin >> mesiac;
    cout << "Введите день: ";
    cin >> den;
    cout << "Введите час: ";
    cin >> chas;
    cout << "Введите минута: ";
    cin >> minuta;
    cout << "Введите секунды: ";
    cin >> secunda;
 
    result = rename(oldname, newname);
    if (result == 0)
        puts("Файл переименован");
    else
        perror("Файл не переименован");
    
    return 0;
}

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

11.11.2021, 21:19

Ответы с готовыми решениями:

указание пути к файлу
Столкнулся с проблемой указания пути к файлу. Написал функцию.

Вызываю её так:…

Пробелы в пути к файлу
Проблема в том, что при указании пользователем пути с пробелом/ами программа вылетает. Не знаю, что…

Пробелы в пути к файлу
Доброго времени суток. Простой вопрос, понимаю..раньше заключал пути в кавычки, но сейчас,…

Переменная в пути к файлу
Есть код, точнее отрывок:
char name;
unsigned long size;
GetUserName(name,&amp;size);

53

0 / 0 / 0

Регистрация: 05.10.2021

Сообщений: 89

12.11.2021, 17:50

 [ТС]

21

lemegeton,

Ошибка (активно) E0020 идентификатор «PCONTEXT» не определен ConsoleApplication2
Ошибка (активно) E0020 идентификатор «PSLIST_HEADER» не определен ConsoleApplication2
Ошибка (активно) E0020 идентификатор «CONTEXT» не определен ConsoleApplication2

Добавлено через 23 секунды
lemegeton, А в каком Вы работаете?

Добавлено через 3 минуты
Дайте пожалуйста файл, я уже его открою сама через vs

Добавлено через 8 минут
lemegeton, можете сделать что можно было самому вводить данные?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



4400 / 2341 / 849

Регистрация: 29.11.2010

Сообщений: 5,181

12.11.2021, 18:03

22

Цитата
Сообщение от Miristeri
Посмотреть сообщение

Ошибка (активно) E0020 идентификатор «PCONTEXT» не определен ConsoleApplication2
Ошибка (активно) E0020 идентификатор «PSLIST_HEADER» не определен ConsoleApplication2
Ошибка (активно) E0020 идентификатор «CONTEXT» не определен ConsoleApplication2

Что это? У меня таких переменных нет. Весь текст, пожалуйста.

Цитата
Сообщение от Miristeri
Посмотреть сообщение

А в каком Вы работаете?

GCC

Цитата
Сообщение от Miristeri
Посмотреть сообщение

Дайте пожалуйста файл, я уже его открою сама через vs

Я выложил его в посте. Целиком.

Цитата
Сообщение от Miristeri
Посмотреть сообщение

можете сделать что можно было самому вводить данные?

Вы сами можете это сделать?



1



Miristeri

0 / 0 / 0

Регистрация: 05.10.2021

Сообщений: 89

12.11.2021, 18:11

 [ТС]

23

lemegeton, Там 25к строк

Добавлено через 34 секунды
lemegeton,

C++
1
HANDLE handle = CreateFile(filename.c_str(), FILE_WRITE_ATTRIBUTES, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

Ошибка в filename

Добавлено через 3 минуты
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка (активно) E0020 идентификатор «PCONTEXT» не определен проба Windows Kits10Include10.0.19041.0umerrhandlingapi.h 214
Ошибка (активно) E0020 идентификатор «PSLIST_HEADER» не определен проба Windows Kits10Include10.0.19041.0uminterlockedapi.h 53
Ошибка (активно) E0020 идентификатор «PSLIST_HEADER» не определен проба Windows Kits10Include10.0.19041.0uminterlockedapi.h 69
Ошибка (активно) E0020 идентификатор «PSLIST_HEADER» не определен проба Windows Kits10Include10.0.19041.0uminterlockedapi.h 61
Ошибка (активно) E0020 идентификатор «PSLIST_HEADER» не определен проба Windows Kits10Include10.0.19041.0uminterlockedapi.h 82
Ошибка (активно) E0020 идентификатор «PSLIST_HEADER» не определен проба Windows Kits10Include10.0.19041.0uminterlockedapi.h 95
Ошибка (активно) E0020 идентификатор «PSLIST_HEADER» не определен проба Windows Kits10Include10.0.19041.0uminterlockedapi.h 103
Ошибка (активно) E0020 идентификатор «PCONTEXT» не определен проба Windows Kits10Include10.0.19041.0umminwinbase.h 384
Ошибка (активно) E0020 идентификатор «CONTEXT» не определен проба Windows Kits10Include10.0.19041.0umprocessthreadsapi. h 845
Ошибка (активно) E0020 идентификатор «PCONTEXT» не определен проба Windows Kits10Include10.0.19041.0umWinBase.h 9309
Ошибка (активно) E0020 идентификатор «PCONTEXT» не определен проба Windows Kits10Include10.0.19041.0umWinBase.h 9311
Ошибка (активно) E0020 идентификатор «PCONTEXT» не определен проба Windows Kits10Include10.0.19041.0umWinBase.h 9327
Ошибка (активно) E0020 идентификатор «PCONTEXT» не определен проба Windows Kits10Include10.0.19041.0umWinBase.h 9346
Ошибка (активно) E0020 идентификатор «PCONTEXT» не определен проба Windows Kits10Include10.0.19041.0umWinBase.h 9382
Ошибка (активно) E0020 идентификатор «PCONTEXT» не определен проба Windows Kits10Include10.0.19041.0umWinBase.h 9373
Ошибка (активно) E0020 идентификатор «PCONTEXT» не определен проба Windows Kits10Include10.0.19041.0umWinBase.h 9392
Ошибка (активно) E0035 директива #error: «No Target Architecture» проба Windows Kits10Include10.0.19041.0umwinnt.h 173
Ошибка (активно) E0020 идентификатор «PCONTEXT» не определен проба Windows Kits10Include10.0.19041.0umwinnt.h 19329
Ошибка (активно) E0020 идентификатор «PSLIST_HEADER» не определен проба Windows Kits10Include10.0.19041.0umwinnt.h 19980
Ошибка (активно) E0020 идентификатор «SLIST_HEADER» не определен проба Windows Kits10Include10.0.19041.0umwinnt.h 19988
Ошибка (активно) E0020 идентификатор «PSLIST_HEADER» не определен проба Windows Kits10Include10.0.19041.0umwinnt.h 19995
Ошибка (активно) E0020 идентификатор «PSLIST_HEADER» не определен проба Windows Kits10Include10.0.19041.0umwinnt.h 20002
Ошибка (активно) E0020 идентификатор «PSLIST_HEADER» не определен проба Windows Kits10Include10.0.19041.0umwinnt.h 20010
Ошибка (активно) E0020 идентификатор «PSLIST_HEADER» не определен проба Windows Kits10Include10.0.19041.0umwinnt.h 20020
Ошибка (активно) E0020 идентификатор «PSLIST_HEADER» не определен проба CWindows Kits10Include10.0.19041.0umwinnt.h 20027
Ошибка (активно) E0167 аргумент типа «const char *» несовместим с параметром типа «LPCWSTR» проба VIRUSпробапроба.cpp 22
Ошибка C1189 #error: «No Target Architecture» проба Windows Kits10Include10.0.19041.0umwinnt.h 173



0



4400 / 2341 / 849

Регистрация: 29.11.2010

Сообщений: 5,181

12.11.2021, 18:12

24

Лучший ответ Сообщение было отмечено Miristeri как решение

Решение

Цитата
Сообщение от Miristeri
Посмотреть сообщение

Там 25к строк

Всё, что выдал компилятор и линковщик, пожалуйста.

Цитата
Сообщение от Miristeri
Посмотреть сообщение

Ошибка в filename

Какая?

Так не пойдёт. Я так из вас буду до второго пришествия клещами вынимать информацию.
Выложите, пожалуйста, полный текст того, что вы пытаетесь запустить и ВСЁ, что вам говорит студия.



1



0 / 0 / 0

Регистрация: 05.10.2021

Сообщений: 89

12.11.2021, 18:12

 [ТС]

25

lemegeton, Вроде проблема с компилятором.



0



lemegeton

4400 / 2341 / 849

Регистрация: 29.11.2010

Сообщений: 5,181

12.11.2021, 18:17

26

Лучший ответ Сообщение было отмечено Miristeri как решение

Решение

Цитата
Сообщение от Miristeri
Посмотреть сообщение

Ошибка (активно) E0020 идентификатор «PCONTEXT» не определен проба Windows Kits10Include10.0.19041.0umerrhandlingapi.h 214

Похоже на то, что вам надо создать другой тип проекта в VS.
К сожалению, не подскажу, какой именно. Что-то типа «приложение Windows Console»?

Добавлено через 1 минуту

Цитата
Сообщение от Miristeri
Посмотреть сообщение

Ошибка (активно) E0035 директива #error: «No Target Architecture» проба Windows Kits10Include10.0.19041.0umwinnt.h 173

Микрософт. Так всё понятно, капец.

Добавлено через 1 минуту
Попробуйте вот так:

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
#include <iostream>
#include <windows.h>
 
// процедура изменения даты и времени создания указанного файла на заданные значения. Вход данные - имя файла, значения даты, времени. Выход данные - логическая переменная
bool setFileTime(const std::string &filename,
                 unsigned long year, unsigned long month, unsigned long day,
                 unsigned long hour, unsigned long minute, unsigned long second, unsigned long millis) {
    SYSTEMTIME systemtime;
 
    systemtime.wYear = year;
    systemtime.wMonth = month;
    systemtime.wDay = day;
    systemtime.wHour = hour;
    systemtime.wMinute = minute;
    systemtime.wSecond = second;
    systemtime.wMilliseconds = millis;
 
    FILETIME filetime;
    SystemTimeToFileTime(&systemtime, &filetime);
 
    HANDLE handle = CreateFile(filename.c_str(), FILE_WRITE_ATTRIBUTES, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
 
    return SetFileTime(handle,(LPFILETIME) &filetime,(LPFILETIME) NULL, (LPFILETIME) NULL);
}
 
int main() {
 
    std::string filename = R"(C:temptest.txt)";
    int year = 2000;
    int month = 1;
    int day = 2;
    int hour = 1;
    int minute = 1;
    int second = 1;
    int millis = 1;
 
    // время в GMT таймзоне
    setFileTime(filename, year, month, day, hour, minute, second, millis);
 
    return 0;
}

Я убрал один инклуд.



1



Miristeri

0 / 0 / 0

Регистрация: 05.10.2021

Сообщений: 89

12.11.2021, 18:18

 [ТС]

27

lemegeton, Можете для Microsoft написать?

Добавлено через 1 минуту
lemegeton, Ошибка
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка (активно) E0167 аргумент типа «const char *» несовместим с параметром типа «LPCWSTR» 21

C++
1
HANDLE handle = CreateFile(filename.c_str(), FILE_WRITE_ATTRIBUTES, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

filename — тут ошибка



0



4400 / 2341 / 849

Регистрация: 29.11.2010

Сообщений: 5,181

12.11.2021, 18:18

28

Лучший ответ Сообщение было отмечено Miristeri как решение

Решение

Цитата
Сообщение от Miristeri
Посмотреть сообщение

Можете для Microsoft написать?

А счего вы взяли, что это не для Microsoft написано? Вы сами понимаете, что значит «для Microsoft»?

Добавлено через 16 секунд

Цитата
Сообщение от Miristeri
Посмотреть сообщение

lemegeton, Ошибка
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка (активно) E0167 аргумент типа «const char *» несовместим с параметром типа «LPCWSTR» 21

Во. Гораздо лучше. Сейчас посмотрим.



1



0 / 0 / 0

Регистрация: 05.10.2021

Сообщений: 89

12.11.2021, 18:20

 [ТС]

29

lemegeton, Скорее всего из-за компилятора? Ваш GCC для Linux по-моему



0



lemegeton

4400 / 2341 / 849

Регистрация: 29.11.2010

Сообщений: 5,181

12.11.2021, 18:32

30

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
#include <iostream>
#include <windows.h>
 
// процедура изменения даты и времени создания указанного файла на заданные значения. Вход данные - имя файла, значения даты, времени. Выход данные - логическая переменная
bool setFileTime(const std::string &filename,
                 unsigned long year, unsigned long month, unsigned long day,
                 unsigned long hour, unsigned long minute, unsigned long second, unsigned long millis) {
    SYSTEMTIME systemtime;
 
    systemtime.wYear = year;
    systemtime.wMonth = month;
    systemtime.wDay = day;
    systemtime.wHour = hour;
    systemtime.wMinute = minute;
    systemtime.wSecond = second;
    systemtime.wMilliseconds = millis;
 
    FILETIME filetime;
    SystemTimeToFileTime(&systemtime, &filetime);
 
    HANDLE handle = CreateFileA(filename.c_str(), FILE_WRITE_ATTRIBUTES, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
 
    return SetFileTime(handle,(LPFILETIME) &filetime,(LPFILETIME) NULL, (LPFILETIME) NULL);
}
 
int main() {
 
    std::string filename = R"(C:temptest2.txt)";
    int year = 2002;
    int month = 12;
    int day = 2;
    int hour = 1;
    int minute = 1;
    int second = 1;
    int millis = 1;
 
    // время в GMT таймзоне
    setFileTime(filename, year, month, day, hour, minute, second, millis);
 
    return 0;
}

Добавлено через 45 секунд

Цитата
Сообщение от Miristeri
Посмотреть сообщение

Скорее всего из-за компилятора? Ваш GCC для Linux по-моему

Нет. Это из-за того, что я не умею правильно работать с винапи.



1



0 / 0 / 0

Регистрация: 05.10.2021

Сообщений: 89

12.11.2021, 18:35

 [ТС]

31

lemegeton, Чего то не работает?



0



4400 / 2341 / 849

Регистрация: 29.11.2010

Сообщений: 5,181

12.11.2021, 18:36

32

Цитата
Сообщение от Miristeri
Посмотреть сообщение

Чего то не работает?

Вы спрашиваете меня, работает или нет?
Какие ошибки?



1



0 / 0 / 0

Регистрация: 05.10.2021

Сообщений: 89

12.11.2021, 18:40

 [ТС]

33

lemegeton, Нету ошибок, файл не изменяется, может из-за защиты win11?

Добавлено через 3 минуты
lemegeton, У Вас работает?



0



4400 / 2341 / 849

Регистрация: 29.11.2010

Сообщений: 5,181

12.11.2021, 18:41

34

Может вы не указали путь к файлу правильно?

Добавлено через 8 секунд
Может быть вы оставили тот путь, что у меня?



1



0 / 0 / 0

Регистрация: 05.10.2021

Сообщений: 89

12.11.2021, 18:41

 [ТС]

35

lemegeton, Диск и имя поменял.



0



4400 / 2341 / 849

Регистрация: 29.11.2010

Сообщений: 5,181

12.11.2021, 18:42

36

Показывайте.



1



Miristeri

0 / 0 / 0

Регистрация: 05.10.2021

Сообщений: 89

12.11.2021, 18:43

 [ТС]

37

lemegeton,

C++
1
std::string filename = R"(D:2222.txt)";



0



lemegeton

4400 / 2341 / 849

Регистрация: 29.11.2010

Сообщений: 5,181

12.11.2021, 18:47

38

Скриншот свойств файла после успешного выполнения программы скиньте, пожалуйста

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

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
#include <iostream>
#include <windows.h>
 
// процедура изменения даты и времени создания указанного файла на заданные значения. Вход данные - имя файла, значения даты, времени. Выход данные - логическая переменная
bool setFileTime(const std::string &filename,
                 unsigned long year, unsigned long month, unsigned long day,
                 unsigned long hour, unsigned long minute, unsigned long second, unsigned long millis) {
    SYSTEMTIME systemtime;
 
    systemtime.wYear = year;
    systemtime.wMonth = month;
    systemtime.wDay = day;
    systemtime.wHour = hour;
    systemtime.wMinute = minute;
    systemtime.wSecond = second;
    systemtime.wMilliseconds = millis;
 
    FILETIME filetime;
    SystemTimeToFileTime(&systemtime, &filetime);
 
    HANDLE handle = CreateFileA(filename.c_str(), FILE_WRITE_ATTRIBUTES, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
 
    return SetFileTime(handle,(LPFILETIME) &filetime,(LPFILETIME) NULL, (LPFILETIME) NULL);
}
 
int main() {
 
    std::string filename = R"(C:temptest2.txt)";
    int year = 2002;
    int month = 12;
    int day = 2;
    int hour = 1;
    int minute = 1;
    int second = 1;
    int millis = 1;
 
    // время в GMT таймзоне
    if (setFileTime(filename, year, month, day, hour, minute, second, millis)) {
        std::cout << "CHANGED" << std::endl;
    } else {
        std::cout << "UNCHANGED" << std::endl;
    }
 
    return 0;
}



1



0 / 0 / 0

Регистрация: 05.10.2021

Сообщений: 89

12.11.2021, 18:48

 [ТС]

39

lemegeton,

Миниатюры

Проложение пути к файлу
 



0



0 / 0 / 0

Регистрация: 05.10.2021

Сообщений: 89

12.11.2021, 18:50

 [ТС]

40

lemegeton, UNCHANGED это выдает

Добавлено через 1 минуту
lemegeton, Работает. Зашла в свойства а там всё другое написано.



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

12.11.2021, 18:50

40

Пытаюсь научиться работать с памятью
сделал простенькое приложение с CreateFileA

C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <fileapi.h>
#include <winioctl.h>
using namespace std;
 
int main()
{
    HANDLE hDevice = CreateFileA("\?GLOBALROOTDeviceHarddisk0Partition1", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_SHARE_READ, NULL);
    return 0;
}

но почему-то после подключения fileapi.h
появились ошибки winnt.h

Код

(в нескольких местах)
Серьезность	Код	Описание	Проект	Файл	Строка	Состояние подавления
Ошибка (активно)	E0020	идентификатор "PSLIST_HEADER" не определен	ConsoleApplication1	C:Program Files (x86)Windows Kits10Include10.0.22000.0umwinnt.h	21158

Код

Серьезность	Код	Описание	Проект	Файл	Строка	Состояние подавления
Ошибка	C1189	#error:  "No Target Architecture"	ConsoleApplication1	C:Program Files (x86)Windows Kits10Include10.0.22000.0umwinnt.h	169

Код

(в нескольких местах)
Серьезность	Код	Описание	Проект	Файл	Строка	Состояние подавления
Ошибка (активно)	E0020	идентификатор "PCONTEXT" не определен	ConsoleApplication1	C:Program Files (x86)Windows Kits10Include10.0.22000.0umwinnt.h	20446

Добавлено через 1 минуту
И вот это ещё

Код

Серьезность	Код	Описание	Проект	Файл	Строка	Состояние подавления
Ошибка	MSB6006	"CL.exe" завершилась с кодом 2.	ConsoleApplication1	C:Program FilesMicrosoft Visual Studio2022EnterpriseMSBuildMicrosoftVCv170Microsoft.CppCommon.targets	703

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

  • Remove From My Forums
  • Question

  • I have this remote application code (https://svn.reactos.org/reactos/trunk/reactos/base/applications/rapps_new/) which i have successfully downloaded to my PC. when i add all the files in a solution and try to run the code in Visual Studio, it gives me following
    errors:

    27 IntelliSense: identifier «SLIST_HEADER» is undefined
    c:Program Files (x86)Windows Kits8.1Includeumwinnt.h
    17554 16
    ConsoleApplication7
    12 IntelliSense: identifier «PSLIST_HEADER» is undefined
    c:Program Files (x86)Windows Kits8.1Includeuminterlockedapi.h
    51 11
    ConsoleApplication7
    13 IntelliSense: identifier «PSLIST_HEADER» is undefined
    c:Program Files (x86)Windows Kits8.1Includeuminterlockedapi.h
    59 13
    ConsoleApplication7
    14 IntelliSense: identifier «PSLIST_HEADER» is undefined
    c:Program Files (x86)Windows Kits8.1Includeuminterlockedapi.h
    67 13
    ConsoleApplication7
    15 IntelliSense: identifier «PSLIST_HEADER» is undefined
    c:Program Files (x86)Windows Kits8.1Includeuminterlockedapi.h
    81 13
    ConsoleApplication7
    16 IntelliSense: identifier «PSLIST_HEADER» is undefined
    c:Program Files (x86)Windows Kits8.1Includeuminterlockedapi.h
    94 13
    ConsoleApplication7
    17 IntelliSense: identifier «PSLIST_HEADER» is undefined
    c:Program Files (x86)Windows Kits8.1Includeuminterlockedapi.h
    102 10
    ConsoleApplication7
    26 IntelliSense: identifier «PSLIST_HEADER» is undefined
    c:Program Files (x86)Windows Kits8.1Includeumwinnt.h
    17546 11
    ConsoleApplication7
    28 IntelliSense: identifier «PSLIST_HEADER» is undefined
    c:Program Files (x86)Windows Kits8.1Includeumwinnt.h
    17561 13
    ConsoleApplication7
    29 IntelliSense: identifier «PSLIST_HEADER» is undefined
    c:Program Files (x86)Windows Kits8.1Includeumwinnt.h
    17568 13
    ConsoleApplication7
    30 IntelliSense: identifier «PSLIST_HEADER» is undefined
    c:Program Files (x86)Windows Kits8.1Includeumwinnt.h
    17576 13
    ConsoleApplication7
    31 IntelliSense: identifier «PSLIST_HEADER» is undefined
    c:Program Files (x86)Windows Kits8.1Includeumwinnt.h
    17586 13
    ConsoleApplication7
    32 IntelliSense: identifier «PSLIST_HEADER» is undefined
    c:Program Files (x86)Windows Kits8.1Includeumwinnt.h
    17593 10
    ConsoleApplication7
    18 IntelliSense: identifier «PCONTEXT» is undefined
    c:Program Files (x86)Windows Kits8.1Includeumminwinbase.h
    358 9
    ConsoleApplication7
    20 IntelliSense: identifier «PCONTEXT» is undefined
    c:Program Files (x86)Windows Kits8.1IncludeumWinBase.h
    1279 14
    ConsoleApplication7
    21 IntelliSense: identifier «PCONTEXT» is undefined
    c:Program Files (x86)Windows Kits8.1IncludeumWinBase.h
    8628 13
    ConsoleApplication7
    22 IntelliSense: identifier «PCONTEXT» is undefined
    c:Program Files (x86)Windows Kits8.1IncludeumWinBase.h
    8630 10
    ConsoleApplication7
    23 IntelliSense: identifier «PCONTEXT» is undefined
    c:Program Files (x86)Windows Kits8.1IncludeumWinBase.h
    8646 11
    ConsoleApplication7
    25 IntelliSense: identifier «PCONTEXT» is undefined
    c:Program Files (x86)Windows Kits8.1Includeumwinnt.h
    16935 11
    ConsoleApplication7
    19 IntelliSense: identifier «CONTEXT» is undefined
    c:Program Files (x86)Windows Kits8.1Includeumprocessthreadsapi.h
    870 16
    ConsoleApplication7
    34 IntelliSense: cannot open source file «rappsmsg_new.h»
    c:UsersAbrar Hassan MalikDesktopReactOSbaseapplicationsrapps_newrapps.h
    27 1
    ConsoleApplication7
    33 IntelliSense: cannot open source file «ndk/rtlfuncs.h»
    c:UsersAbrar Hassan MalikDesktopReactOSbaseapplicationsrapps_newrapps.h
    25 1
    ConsoleApplication7
    24 IntelliSense: #error directive: «No Target Architecture»
    c:Program Files (x86)Windows Kits8.1Includeumwinnt.h
    147 2
    ConsoleApplication7
    Error 1
    error C1189: #error :  «No Target Architecture»
    c:program files (x86)windows kits8.1includeumwinnt.h
    147 1
    ConsoleApplication7
    Error 2
    error C1189: #error :  «No Target Architecture»
    c:program files (x86)windows kits8.1includeumwinnt.h
    147 1
    ConsoleApplication7
    Error 3
    error C1189: #error :  «No Target Architecture»
    c:program files (x86)windows kits8.1includeumwinnt.h
    147 1
    ConsoleApplication7
    Error 4
    error C1189: #error :  «No Target Architecture»
    c:program files (x86)windows kits8.1includeumwinnt.h
    147 1
    ConsoleApplication7
    Error 5
    error C1189: #error :  «No Target Architecture»
    c:program files (x86)windows kits8.1includeumwinnt.h
    147 1
    ConsoleApplication7
    Error 6
    error C1189: #error :  «No Target Architecture»
    c:program files (x86)windows kits8.1includeumwinnt.h
    147 1
    ConsoleApplication7
    Error 7
    error C1189: #error :  «No Target Architecture»
    c:program files (x86)windows kits8.1includeumwinnt.h
    147 1
    ConsoleApplication7
    Error 8
    error C1189: #error :  «No Target Architecture»
    c:program files (x86)windows kits8.1includeumwinnt.h
    147 1
    ConsoleApplication7
    Error 9
    error C1189: #error :  «No Target Architecture»
    c:program files (x86)windows kits8.1includeumwinnt.h
    147 1
    ConsoleApplication7
    Error 10
    error C1189: #error :  «No Target Architecture»
    c:program files (x86)windows kits8.1includeumwinnt.h
    147 1
    ConsoleApplication7
    Error 11
    error C1189: #error :  «No Target Architecture»
    c:program files (x86)windows kits8.1includeumwinnt.h
    147 1
    ConsoleApplication7

    How do i get this to work? I have tried generating the binary files through cmake using the cmakelists.txt in the parent directory (https://svn.reactos.org/reactos/trunk/reactos/) but i have no idea how to link or add them to my code appropriately, for it
    to work, if they are at all needed in the first place.

     

    • Edited by

      Friday, March 10, 2017 4:58 PM
      Typos and adding bit more clarity

  • Remove From My Forums
  • Question

  • I have this remote application code (https://svn.reactos.org/reactos/trunk/reactos/base/applications/rapps_new/) which i have successfully downloaded to my PC. when i add all the files in a solution and try to run the code in Visual Studio, it gives me following
    errors:

    27 IntelliSense: identifier «SLIST_HEADER» is undefined
    c:Program Files (x86)Windows Kits8.1Includeumwinnt.h
    17554 16
    ConsoleApplication7
    12 IntelliSense: identifier «PSLIST_HEADER» is undefined
    c:Program Files (x86)Windows Kits8.1Includeuminterlockedapi.h
    51 11
    ConsoleApplication7
    13 IntelliSense: identifier «PSLIST_HEADER» is undefined
    c:Program Files (x86)Windows Kits8.1Includeuminterlockedapi.h
    59 13
    ConsoleApplication7
    14 IntelliSense: identifier «PSLIST_HEADER» is undefined
    c:Program Files (x86)Windows Kits8.1Includeuminterlockedapi.h
    67 13
    ConsoleApplication7
    15 IntelliSense: identifier «PSLIST_HEADER» is undefined
    c:Program Files (x86)Windows Kits8.1Includeuminterlockedapi.h
    81 13
    ConsoleApplication7
    16 IntelliSense: identifier «PSLIST_HEADER» is undefined
    c:Program Files (x86)Windows Kits8.1Includeuminterlockedapi.h
    94 13
    ConsoleApplication7
    17 IntelliSense: identifier «PSLIST_HEADER» is undefined
    c:Program Files (x86)Windows Kits8.1Includeuminterlockedapi.h
    102 10
    ConsoleApplication7
    26 IntelliSense: identifier «PSLIST_HEADER» is undefined
    c:Program Files (x86)Windows Kits8.1Includeumwinnt.h
    17546 11
    ConsoleApplication7
    28 IntelliSense: identifier «PSLIST_HEADER» is undefined
    c:Program Files (x86)Windows Kits8.1Includeumwinnt.h
    17561 13
    ConsoleApplication7
    29 IntelliSense: identifier «PSLIST_HEADER» is undefined
    c:Program Files (x86)Windows Kits8.1Includeumwinnt.h
    17568 13
    ConsoleApplication7
    30 IntelliSense: identifier «PSLIST_HEADER» is undefined
    c:Program Files (x86)Windows Kits8.1Includeumwinnt.h
    17576 13
    ConsoleApplication7
    31 IntelliSense: identifier «PSLIST_HEADER» is undefined
    c:Program Files (x86)Windows Kits8.1Includeumwinnt.h
    17586 13
    ConsoleApplication7
    32 IntelliSense: identifier «PSLIST_HEADER» is undefined
    c:Program Files (x86)Windows Kits8.1Includeumwinnt.h
    17593 10
    ConsoleApplication7
    18 IntelliSense: identifier «PCONTEXT» is undefined
    c:Program Files (x86)Windows Kits8.1Includeumminwinbase.h
    358 9
    ConsoleApplication7
    20 IntelliSense: identifier «PCONTEXT» is undefined
    c:Program Files (x86)Windows Kits8.1IncludeumWinBase.h
    1279 14
    ConsoleApplication7
    21 IntelliSense: identifier «PCONTEXT» is undefined
    c:Program Files (x86)Windows Kits8.1IncludeumWinBase.h
    8628 13
    ConsoleApplication7
    22 IntelliSense: identifier «PCONTEXT» is undefined
    c:Program Files (x86)Windows Kits8.1IncludeumWinBase.h
    8630 10
    ConsoleApplication7
    23 IntelliSense: identifier «PCONTEXT» is undefined
    c:Program Files (x86)Windows Kits8.1IncludeumWinBase.h
    8646 11
    ConsoleApplication7
    25 IntelliSense: identifier «PCONTEXT» is undefined
    c:Program Files (x86)Windows Kits8.1Includeumwinnt.h
    16935 11
    ConsoleApplication7
    19 IntelliSense: identifier «CONTEXT» is undefined
    c:Program Files (x86)Windows Kits8.1Includeumprocessthreadsapi.h
    870 16
    ConsoleApplication7
    34 IntelliSense: cannot open source file «rappsmsg_new.h»
    c:UsersAbrar Hassan MalikDesktopReactOSbaseapplicationsrapps_newrapps.h
    27 1
    ConsoleApplication7
    33 IntelliSense: cannot open source file «ndk/rtlfuncs.h»
    c:UsersAbrar Hassan MalikDesktopReactOSbaseapplicationsrapps_newrapps.h
    25 1
    ConsoleApplication7
    24 IntelliSense: #error directive: «No Target Architecture»
    c:Program Files (x86)Windows Kits8.1Includeumwinnt.h
    147 2
    ConsoleApplication7
    Error 1
    error C1189: #error :  «No Target Architecture»
    c:program files (x86)windows kits8.1includeumwinnt.h
    147 1
    ConsoleApplication7
    Error 2
    error C1189: #error :  «No Target Architecture»
    c:program files (x86)windows kits8.1includeumwinnt.h
    147 1
    ConsoleApplication7
    Error 3
    error C1189: #error :  «No Target Architecture»
    c:program files (x86)windows kits8.1includeumwinnt.h
    147 1
    ConsoleApplication7
    Error 4
    error C1189: #error :  «No Target Architecture»
    c:program files (x86)windows kits8.1includeumwinnt.h
    147 1
    ConsoleApplication7
    Error 5
    error C1189: #error :  «No Target Architecture»
    c:program files (x86)windows kits8.1includeumwinnt.h
    147 1
    ConsoleApplication7
    Error 6
    error C1189: #error :  «No Target Architecture»
    c:program files (x86)windows kits8.1includeumwinnt.h
    147 1
    ConsoleApplication7
    Error 7
    error C1189: #error :  «No Target Architecture»
    c:program files (x86)windows kits8.1includeumwinnt.h
    147 1
    ConsoleApplication7
    Error 8
    error C1189: #error :  «No Target Architecture»
    c:program files (x86)windows kits8.1includeumwinnt.h
    147 1
    ConsoleApplication7
    Error 9
    error C1189: #error :  «No Target Architecture»
    c:program files (x86)windows kits8.1includeumwinnt.h
    147 1
    ConsoleApplication7
    Error 10
    error C1189: #error :  «No Target Architecture»
    c:program files (x86)windows kits8.1includeumwinnt.h
    147 1
    ConsoleApplication7
    Error 11
    error C1189: #error :  «No Target Architecture»
    c:program files (x86)windows kits8.1includeumwinnt.h
    147 1
    ConsoleApplication7

    How do i get this to work? I have tried generating the binary files through cmake using the cmakelists.txt in the parent directory (https://svn.reactos.org/reactos/trunk/reactos/) but i have no idea how to link or add them to my code appropriately, for it
    to work, if they are at all needed in the first place.

     

    • Edited by

      Friday, March 10, 2017 4:58 PM
      Typos and adding bit more clarity

Пишу программу на С++, в которой надо разработать определения двух классов COne и CTwo, которые связаны отношением включения.
Проблема возникает в protected класса CTwo (E0020 идентификатор "COne" не определен) и C3646 obj: неизвестный спецификатор переопределения. В чем может быть проблема?

//MAIN
#include <iostream>
#include <string>
#include "COne.h"
#include "CTwo.h"
int main()
{
    COne A("TEST ",1482);
    A.print();
    cout << A.getD() << endl;

    cout << A.getS() << endl;

}


//CONE.H
#ifndef CONE_H
#define CONE_H

#include <iostream>
#include <string>


using namespace std;

class COne
{

    protected:
        string s;
        double d;
        
    public:
        COne();
        COne(string S, double D);
        ~COne();

        COne(const COne& arg);
        
        void print();

        COne(COne& arg);

        const double& getD();
        const string& getS();

        void Print();

        COne& operator=(const COne& arg);

        friend class CTwo;
};
#endif

//CTWO.H
#ifndef CTWO_H
#define CTWO_H

#include <iostream>
#include <string>


using namespace std;

class CTwo
{
    protected:
        string s;
        COne obj;    // < -- - - ТУТ ОШИБКА

    public:
        CTwo(string S, string SOne, double d);



        friend class COne;
};

#endif

задан 21 окт 2021 в 7:42

Kartoshka98's user avatar

1

  1. Вам нужно подключать заголовки так, чтобы объявления оказались в нужной области видимости.
  2. Для избежания циклических включений (как в вашем случае) нужно использовать предварительное объявление.

Переделайте как то так:

CONE.H

#ifndef CONE_H
#define CONE_H

#include <iostream>
#include <string>
#include "CTwo.h"

using namespace std;

class COne
{

    protected:
        string s;
        double d;
        
    public:
        COne();
        COne(string S, double D);
        ~COne();

        COne(const COne& arg);
        
        void print();

        COne(COne& arg);

        const double& getD();
        const string& getS();

        void Print();

        COne& operator=(const COne& arg);

        friend class CTwo;
};
#endif

CTWO.H

#ifndef CTWO_H
#define CTWO_H

#include <iostream>
#include <string>


using namespace std;
class COne;

class CTwo
{
    protected:
        string s;
        COne obj;

    public:
        CTwo(string S, string SOne, double d);



        friend class COne;
};

#endif

ответ дан 21 окт 2021 в 7:48

Sheridan's user avatar

SheridanSheridan

3,06611 серебряных знаков30 бронзовых знаков

4

Max3358


    Автор темы

  • #1

Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

Проблема с компиляцией

Серьезность Код Описание Проект Файл Строка Suppression State
Ошибка C3861 _ReturnAddress: идентификатор не найден (компилируется исходный файл Hooks.cpp) camelCase C:UsersDesktopWhip- FixedAYYWARE CSGOHooks.cpp 366

Серьезность Код Описание Проект Файл Строка Suppression State
Ошибка (активно) E0020 идентификатор «_ReturnAddress» не определен camelCase c:UsersDesktopWhip- FixedAYYWARE CSGOHooks.cpp 366

Болтовня ничего не стоит. Покажите мне код.

CoderLine

Пользователь


  • #2

Проверь файл intrin.h

Max3358


    Автор темы

  • #3

Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

Проверь файл intrin.h

Уже стоит

 if (Menu::Window.VisualsTab.OtherNoVisualRecoil.GetState() && (DWORD)(_ReturnAddress()) == Offsets::Functions::dwCalcPlayerView)
Эта строчка не правильная

Rem1x


  • #4

Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

if (Menu::Window.VisualsTab.OtherNoVisualRecoil.GetState()== Offsets::Functions::dwCalcPlayerView)
На это смени

flames


  • #5

Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

Смени визуалку с 2017 на 2015, на 2017 всегда ошибка.

Twk

Пользователь


  • #6

Смени визуалку с 2017 на 2015, на 2017 всегда ошибка.

Юзаю 2к17 давно уже никакйо проблемы нету

haxen


  • #7

Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

Put it in Hooks.cpp

#include <intrin.h>
#include <algorithm>

Heleks


  • #8

компиль в релизе, а не в дебаге

haxen


  • #9

Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

компиль в релизе, а не в дебаге

Its not debug fault. I think he is using visual studio 2017. I got the same issue while moving from 2015 version

  • #10

Была такая проблема. Фиксанул. В обозревателе решений ищешь intrin.h
Далее: строка 145.
__MACHINE(void _ReturnAddress(void))
Изи.

Twk

Пользователь


  • #11

Была такая проблема. Фиксанул. В обозревателе решений ищешь intrin.h
Далее: строка 145.
__MACHINE(void _ReturnAddress(void))
Изи.

Ты читал старые комменты ? тоже самое уже написали

  • #12

Ты читал старые комменты ? тоже самое уже написали

а, лол. рили, комменты не читал вообще :D.

joketail


вот весь код

#include <iostream> 
#include <windows.h> 
using namespace std;
class Triangle
{
public:
	int a;
	int b;
	int c;
	int x;
	int y;
	Triangle(int a1, int b1, int c1) { a = a1; b = b1; c = c1; }
	double S() {
		return (sqrt((a + b + c) * (1.0 / 2) * ((a + b + c) * (1.0 / 2) - c) * ((a + b + c) * (1.0 / 2) - a) * ((a + b + c) * (1.0 / 2) - b)));
	}
	void move()
	{
		cout << endl;
		cout << "введи точку икс : ";
		cin >> x;
		cout << "введи точку игрек : ";
		cin >> y;
		cout << "фигура перемещена в точку " << x << " " << y << endl;
	}
};
class Rectangl
{
public:
	int a2;
	int b2;
	int x2;
	int y2;
	double sinx;
	Rectangl(int a1, int b1, double sinx1) { a2 = a1; b2 = b1; sinx = sinx1; }
	double S1() {
		return (0.5 * a2 * b2 * sinx);
	}
	void move1()
	{
		cout << endl;
		cout << "введи точку икс : ";
		cin >> x2;
		cout << "введи точку игрек : ";
		cin >> y2;
		cout << "фигура перемещена в точку " << x2 << " " << y2 << endl;
	}
};
class Work : public Triangle, public Rectangl
{
public:
	Work(int a, int b, int c, int a2, int b2 , double sinx ) :Triangle(a,b,c), Rectangl(a2,b2,sinx) {};
	void compare()
	{
		cout << S() <<endl;
		cout << S1() <<endl;

		if (S1() > S()) {
			cout << "Площадь четырёхугольника больше n";
		}
		if (S1() < S()) {
			cout << "Площадь треугольника больше n";
		}
		if (S1() == S()) {
			cout << "Площадь одинакова";
		}
	}
};
int main()
{
	SetConsoleCP(1251);
	SetConsoleOutputCP(1251);
	int a, b, c, a2, b2;
	double sinx;
	cout << "создать объекты?(жми 0)" << endl;
	int flak;
	cin >> flak;
	if (flak == 0) {
		cout << "введи стороны треугольника";
		cin >> a;
		cin >> b;
		cin >> c;
		cout << "введи диагонали и синус угла между ними для чутырёхугольника";
		cin >> a2;
		cin >> b2;
		cin >> sinx;

		Work* p;
		Triangle* p1;
		Rectangl* p2;
		p1 = new Triangle(a, b, c);
		p2 = new Rectangl(a2, b2, sinx);
		p = new Work(a, b, c, a2, b2, sinx);
		p->compare();
	}
	cout << "Что хочешь?" << endl;
	cout << "удалить объекты(жми1)" << endl;
	cout << "переместить объекты(жми2)" << endl;
	cout << "сравнить объекты(жми3)" << endl;

	int flak1;
	cin >> flak1;

	if (flak1 == 1) {
		delete p;
		delete p1;
		delete p2;
	}

	system("PAUSE");
	return 0;
}

интересуют три строки в конце с delete

Почему вне if все нормально, а внутри идентификатор не определен

Я пытаюсь отправить два массива в функцию с помощью указателей.

Затем я пытаюсь присвоить разыменованные значения из двух *массивов (отправляемых в качестве аргументов при вызове функции) двум массивам (не указателям), где ими можно манипулировать с большей легкостью.

Примечание: нет объектов или классов. Я не вижу никакого рессона для динамической обработки памяти (создать, удалить).

Исходные массивы в main:

int arr_fractions[2][7]
    {
        0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0
    };

int arr_converted_values[2][7]
    {
        0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0
    };

Это вызов функции, в основном:

arr_converted_values[2][7] = decimal_conversion(arr_decimals, *arr_converted_values, &var_fract_length);

Функция:

int decimal_conversion(long double* arr_temp_decimals, int* arr_converted_values, int* var_fract_length)
{
    // pointer retrieval ----------------------------------------------------------------
    long double arr_temp_decimals[2][7]
    {
        0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0
    };

    int arr_temp_values[2][7]
    {
        0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0
    };

    int var_tempt_fract_value = *var_fract_length;

    for (int* var_temp_storage = 0; *var_temp_storage < *var_fract_length; *var_temp_storage++)
    {
        arr_temp_decimals[0][*var_temp_storage] = &arr_decimals[0][*var_temp_storage];
        arr_temp_decimals[1][*var_temp_storage] = &arr_decimals[1][*var_temp_storage];
        arr_temp_values[0][*var_temp_storage] = arr_converted_values[0][var_temp_storage];
        arr_temp_values[1][*var_temp_storage] = arr_converted_values[1][var_temp_storage];
    }
    // --------------------------------------------------------------------------------------------

    ...
    ...
    ...

    return (*arr_converted_values);
}

Три ошибки (ниже), которые я получаю, указывают на использование массива в цикле for, показанном выше.

E0142: выражение должно иметь тип указателя на объект, но имеет тип —>arr_*temp_*decinmals[0[*var_temp_storage]

E0142: выражение должно иметь тип указателя на объект, но имеет тип —>arr_*temp_*decinmals[1]*var_temp_storage]

E0020: идентификатор «arr_decimals» не определен — > &arr_decinmals[0][*var_temp_storage];

2 ответа

Проблема в том, что вы пытаетесь присвоить значение массиву, что невозможно. Массивы не могут быть назначены в C++

Возможно, вы захотите присвоить значение элементу массива, например:

arr_temp_decimals[0][*var_temp_storage] = arr_decimals[0][*var_temp_storage];

Однако и это не сработает, потому что вы пытаетесь присвоить значение типа long double элементу типа int. Сначала вам нужно будет преобразовать значение, например:

arr_temp_decimals[0][*var_temp_storage] = static_cast<int>(arr_decimals[0][*var_temp_storage]);

В качестве альтернативы вы можете изменить тип массива arr_temp_decimals на тип long double, например:

long double arr_temp_decimals[2][7]
{
    0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0
};


0

Igor
17 Ноя 2022 в 06:38

В вашем фрагменте много ошибок.

arr_temp_decimals имеет переопределение in int decimal_conversion()

идентификатор «arr_decimals» не определен

Вы не объявляли arr_decimals раньше в функции.

Arr_decimals помещается в decimal_conversion(arr_decimals…). Так что это будет

 arr_decimals[0][*var_temp_storage] = arr_decimals[0][*var_temp_storage];

Arr_converted_values ​​— статический двумерный массив. Попробуйте изменить параметр функции int* arr_converted_values на int arr_converted_values[][7].

for (int* var_temp_storage = 0; *var_temp_storage < *var_fract_length; *var_temp_storage++)
arr_converted_values[0][var_temp_storage];

Адрес указателя нельзя использовать как arr_converted_values[0][var_temp_storage].

Рассмотрите возможность использования std::vector .


0

Minxin Yu — MSFT
18 Ноя 2022 в 12:04

    msm.ru

    Нравится ресурс?

    Помоги проекту!

    !
    Правила раздела Visual C++ / MFC / WTL (далее Раздела)

    >
    Написание драйвера под WinXP

    • Подписаться на тему
    • Сообщить другу
    • Скачать/распечатать тему



    Сообщ.
    #1

    ,
    27.11.06, 08:36

      Первый раз столкнулся с проблемой написания драйвера — естественно возникли проблемы.

      Рекомендуемая среда разработки для написания драйверов Visual C (не C++!). У меня под рукой оказалась только мокрософтофская Visual Studio C++. При компиляции была найдена ошибка в windef.h. Ругается на строку *PCONTEXT <имя переменной>. Ошибка следующая пропущена «;» или неизвестный тип *PCONTEXT. Выше в библиотеке есть сточка typedef *PCONTEXT CONTEXT. Вообщем хня какая-то. Использовал файл из набора DDK for WinXP SP1.
      Кто-нибудь встречался с подобной ситуацией? (может дело в компиляторе=среда разработки?)

      Еще выскакивает ошибочка о неправильной целевой архитектуре или типа того. Значит ли это что DDK for WinXP SP1 не подходит для разработки дров под WinXP SP2?


      HOMO_PROGRAMMATIS



      Сообщ.
      #2

      ,
      27.11.06, 12:13

        Дело вовсе не в компиляторе а в банальном незнании языка.


        MaIron



        Сообщ.
        #3

        ,
        27.11.06, 12:16

          ExpandedWrap disabled

            Visual C (не C++!).

          Что то я не понял… stKlaus — а что означает Visual перед С?


          HOMO_PROGRAMMATIS



          Сообщ.
          #4

          ,
          27.11.06, 13:18

            Я даже не знаю с какого конца начать объяснять в чем дело.

            typedef *PCONTEXT CONTEXT; означает что отныне PCONTEXT == CONTEXT*
            Определения, где тип переменной начинается со звездочки — вообще недопустимы

            Сообщение отредактировано: HOMO_PROGRAMMATIS — 27.11.06, 13:20


            stKlaus



            Сообщ.
            #5

            ,
            28.11.06, 07:10

              Цитата MaIron @ 27.11.06, 12:16

              ExpandedWrap disabled

                Visual C (не C++!).

              Что то я не понял… stKlaus — а что означает Visual перед С?

              Microsoft Visual C, как говорят, это мамонт существовавщий до Microsoft Visual Studio. Сбился с ног никак дистрибутив нарыть не могу.

              2 HOMO_PROGRAMMATIS:
              Т.е. мокрософты выпускают гнилые ДДК? А по поводу незнания… просто никогда не возникало желания править стандартные библиотеки, поэтому и решил спросить: может кто-нибудь уже сталкивался с этой проблемой.

              Сообщение отредактировано: stKlaus — 28.11.06, 07:19


              BlackEmperor



              Сообщ.
              #6

              ,
              28.11.06, 08:01

                Цитата stKlaus @ 28.11.06, 07:10

                2 HOMO_PROGRAMMATIS:
                Т.е. мокрософты выпускают гнилые ДДК? А по поводу незнания… просто никогда не возникало желания править стандартные библиотеки, поэтому и решил спросить: может кто-нибудь уже сталкивался с этой проблемой.

                Ну, почему собственно гнилые, не такие уж и плохие ДДК от мелкомягких :) а чем собственно C++ не угодил, объективные причины плиз, а не слышал что это быстрее работать может будет, а может и нет ;) . Ну а если всеж С чистый то мир не замыкается на компилере от MS есть куча других в том числе и фриварных …


                Irp



                Сообщ.
                #7

                ,
                28.11.06, 08:33

                  В упор не найду в файле windef.h такого объявления, потому что его там и нет, и не было.
                  А вот в winnt.h оно есть, только записывается вот так:

                  ExpandedWrap disabled

                    typedef CONTEXT *PCONTEXT;

                  И подключается оно include-ом в файле windef.h

                  Подозреваю что Вы неправильно настрояли среду для коппиляции!!! пытаетесь компилить драйвера в среде для компиляции WIN32 приложений. Проверте порядок подключения Include в настройках компилятора, и собственно вызовы include в Вашем драйвере!

                  Сообщение отредактировано: Irp — 28.11.06, 08:38


                  stKlaus



                  Сообщ.
                  #8

                  ,
                  28.11.06, 10:45

                    Извините. Действительно ошибся))) Писал по памяти (колдую дома), а И-нет только на работе(.

                    — В настройках среды прописывал пути для подключения библиотек и файлов-заголовков. DDKшные пути расположил в начале списка путей (сверху). Листинг привожу ниже:

                    Цитата

                    #include <ntddk.h>
                    #include «driver.h»

                    #define DEBUG

                    /*
                    Создаем макрос для вывода отладочных сообщений
                    в случае компиляции с директивой DEBUG
                    */

                    #ifdef DEBUG
                    #define DPRINT DbgPrint
                    #else
                    #define DPRINT
                    #endif

                    VOID DriverUnload(IN PDRIVER_OBJECT DriverObject)
                    {
                    DPRINT(«Driver unloaded»);
                    return;
                    }

                    NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,
                    IN PUNICODE_STRING RegistryPath)
                    {
                    DPRINT(«Driver loaded»);

                    return STATUS_SUCCESS;
                    }

                    //Взято отсюда

                    — Я лично ничего не имею против С++. Но при попытке откомпилить драйвер в Borland C++ Buider (все лабораторные и курсачи до этого делались в нем) мне было вежливо сообщено, что данный компилятор не подходит для разработки драйверов. + в той же статье я увидел:

                    Цитата

                    Начнем с вполне документированного способа: написания драйвера. Для этого нам понадобиться Visual C++ 6.0 (или позже) и комплект DDK (Driver Development Kit). DDK идет под конкретную версию Windows NT, и раньше был доступен для скачивания с сайта Microsoft, но теперь мелкомягкие стали требовать за него денег. Однако, при большом желании, DDK всё же можно найти. Подойдет практически любая версия. После установки DDK можно приступать к созданию шаблона простейшего драйвера.

                    Подытоживая все сказанное: если кто-нибудь писал дрова под винХР — скажите на чем вели разработку.

                    Сообщение отредактировано: stKlaus — 28.11.06, 12:08


                    stKlaus



                    Сообщ.
                    #9

                    ,
                    06.12.06, 10:40

                      Проблема решена.

                      Поставил Visual Studio 2005, DDK for WinXP SP1 и откомпилировал драйвер спомощью утилиты build.

                      Спасибо за помощь всем кто откликнулся.

                      Тема закрыта.

                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)

                      0 пользователей:

                      • Предыдущая тема
                      • Visual C++ / MFC / WTL
                      • Следующая тема

                      Рейтинг@Mail.ru

                      [ Script execution time: 0,0306 ]   [ 16 queries used ]   [ Generated: 30.01.23, 05:47 GMT ]  

                      0 0 голоса
                      Рейтинг статьи
                      Подписаться
                      Уведомить о
                      guest

                      0 комментариев
                      Старые
                      Новые Популярные
                      Межтекстовые Отзывы
                      Посмотреть все комментарии

                      А вот еще интересные материалы:

                    • Яшка сломя голову остановился исправьте ошибки
                    • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
                    • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
                    • Ошибка активации офис 2010 0х80072f8f
                    • Ошибка активированы динамики телевизора филипс пишет