Форум программистов, компьютерный форум CyberForum.ru

Ошибки в winnt.h - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
lannnser
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 4
24.09.2012, 14:52     Ошибки в winnt.h #1
Всем добрый день! Я начинающий кодер на с, щас балуюсь с visual c++ 6.0
Вот, нашел в сети исходник:
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
#include <stdio.h>
#include <winnt.h>
 
#define SLEN 8
#define OK   0
#define BAD  1
 
IMAGE_NT_HEADERS32 pe;
IMAGE_DOS_HEADER mz;
IMAGE_SECTION_HEADER sh;
 
/* "Проверялка" для Win95.CIH. © Климентьев К., Самара 2001 */
int CheckCIH( char *filename ) {
 
int  f, i;
char buf[SLEN];
char Sign[SLEN] ={0x55, 0x8D, 0x44, 0x24, 0xF8, 0x33, 0xDB, 0x64};
 
f=open(filename, O_RDONLY|O_BINARY);
read( f, &mz, sizeof(IMAGE_DOS_HEADER));
if ((mz.e_magic==0x5A4D)&&(mz.e_lfarlc>=0x40)) {
 lseek( f, mz.e_lfanew, SEEK_SET);
 read( f, &pe, sizeof(IMAGE_NT_HEADERS32));
 if (pe.Signature==0x4550) {
  lseek( f, pe.OptionalHeader.AddressOfEntryPoint, SEEK_SET);
  read( f, buf, SLEN); close(f);
  for (i=0;i<SLEN;i++) if (buf[i] != Sign[i]) return OK;
  return BAD;
  }
 }
close(f); return OK;
}
Пытаюсь скомпилить, но компилятор выдает 102 ошибки, ругаясь на winnt.h

выдает 102 ошибки
d:\vc\microsoft visual studio\vc98\include\winnt.h(152) : error C2054: expected '(' to follow 'CONST'
d:\vc\microsoft visual studio\vc98\include\winnt.h(152) : error C2085: 'LPCWCH' : not in formal parameter list
d:\vc\microsoft visual studio\vc98\include\winnt.h(152) : error C2085: 'PCWCH' : not in formal parameter list
d:\vc\microsoft visual studio\vc98\include\winnt.h(153) : error C2085: 'NWPSTR' : not in formal parameter list
d:\vc\microsoft visual studio\vc98\include\winnt.h(154) : error C2085: 'LPWSTR' : not in formal parameter list
d:\vc\microsoft visual studio\vc98\include\winnt.h(154) : error C2085: 'PWSTR' : not in formal parameter list
d:\vc\microsoft visual studio\vc98\include\winnt.h(156) : error C2082: redefinition of formal parameter 'WCHAR'
d:\vc\microsoft visual studio\vc98\include\winnt.h(156) : error C2143: syntax error : missing ';' before '*'
d:\vc\microsoft visual studio\vc98\include\winnt.h(164) : error C2143: syntax error : missing '{' before '*'
d:\vc\microsoft visual studio\vc98\include\winnt.h(167) : error C2143: syntax error : missing '{' before '*'
d:\vc\microsoft visual studio\vc98\include\winnt.h(196) : error C2061: syntax error : identifier 'LPCTSTR'
d:\vc\microsoft visual studio\vc98\include\winnt.h(196) : error C2059: syntax error : ';'
d:\vc\microsoft visual studio\vc98\include\winnt.h(219) : error C2061: syntax error : identifier 'FCHAR'
d:\vc\microsoft visual studio\vc98\include\winnt.h(219) : error C2059: syntax error : ';'
d:\vc\microsoft visual studio\vc98\include\winnt.h(220) : error C2061: syntax error : identifier 'FSHORT'
d:\vc\microsoft visual studio\vc98\include\winnt.h(220) : error C2059: syntax error : ';'
d:\vc\microsoft visual studio\vc98\include\winnt.h(221) : error C2061: syntax error : identifier 'FLONG'
d:\vc\microsoft visual studio\vc98\include\winnt.h(221) : error C2059: syntax error : ';'
d:\vc\microsoft visual studio\vc98\include\winnt.h(277) : error C2061: syntax error : identifier 'LCID'
d:\vc\microsoft visual studio\vc98\include\winnt.h(277) : error C2059: syntax error : ';'
d:\vc\microsoft visual studio\vc98\include\winnt.h(278) : error C2061: syntax error : identifier 'PLCID'
d:\vc\microsoft visual studio\vc98\include\winnt.h(278) : error C2059: syntax error : ';'
d:\vc\microsoft visual studio\vc98\include\winnt.h(279) : error C2061: syntax error : identifier 'LANGID'
d:\vc\microsoft visual studio\vc98\include\winnt.h(279) : error C2059: syntax error : ';'
d:\vc\microsoft visual studio\vc98\include\winnt.h(355) : error C2061: syntax error : identifier 'DWORD'
d:\vc\microsoft visual studio\vc98\include\winnt.h(357) : error C2059: syntax error : '}'
d:\vc\microsoft visual studio\vc98\include\winnt.h(359) : error C2061: syntax error : identifier 'DWORD'
d:\vc\microsoft visual studio\vc98\include\winnt.h(361) : error C2059: syntax error : '}'
d:\vc\microsoft visual studio\vc98\include\winnt.h(364) : error C2059: syntax error : '}'
d:\vc\microsoft visual studio\vc98\include\winnt.h(366) : error C2143: syntax error : missing '{' before '*'
d:\vc\microsoft visual studio\vc98\include\winnt.h(374) : error C2061: syntax error : identifier 'DWORD'
d:\vc\microsoft visual studio\vc98\include\winnt.h(375) : error C2061: syntax error : identifier 'HighPart'
d:\vc\microsoft visual studio\vc98\include\winnt.h(375) : error C2059: syntax error : ';'
d:\vc\microsoft visual studio\vc98\include\winnt.h(376) : error C2059: syntax error : '}'
d:\vc\microsoft visual studio\vc98\include\winnt.h(378) : error C2061: syntax error : identifier 'DWORD'
d:\vc\microsoft visual studio\vc98\include\winnt.h(379) : error C2061: syntax error : identifier 'HighPart'
d:\vc\microsoft visual studio\vc98\include\winnt.h(379) : error C2059: syntax error : ';'
d:\vc\microsoft visual studio\vc98\include\winnt.h(380) : error C2059: syntax error : '}'
d:\vc\microsoft visual studio\vc98\include\winnt.h(382) : warning C4142: benign redefinition of type
d:\vc\microsoft visual studio\vc98\include\winnt.h(383) : error C2059: syntax error : '}'
d:\vc\microsoft visual studio\vc98\include\winnt.h(385) : error C2143: syntax error : missing '{' before '*'
d:\vc\microsoft visual studio\vc98\include\winnt.h(395) : error C2061: syntax error : identifier 'DWORD'
d:\vc\microsoft visual studio\vc98\include\winnt.h(397) : error C2059: syntax error : '}'
d:\vc\microsoft visual studio\vc98\include\winnt.h(504) : error C2146: syntax error : missing ')' before identifier 'ShiftCount'
d:\vc\microsoft visual studio\vc98\include\winnt.h(504) : error C2081: 'DWORD' : name in formal parameter list illegal
d:\vc\microsoft visual studio\vc98\include\winnt.h(504) : error C2061: syntax error : identifier 'ShiftCount'
d:\vc\microsoft visual studio\vc98\include\winnt.h(504) : error C2059: syntax error : ';'
d:\vc\microsoft visual studio\vc98\include\winnt.h(505) : error C2059: syntax error : ')'
d:\vc\microsoft visual studio\vc98\include\winnt.h(511) : error C2146: syntax error : missing ')' before identifier 'ShiftCount'
d:\vc\microsoft visual studio\vc98\include\winnt.h(511) : error C2081: 'DWORD' : name in formal parameter list illegal
d:\vc\microsoft visual studio\vc98\include\winnt.h(511) : error C2061: syntax error : identifier 'ShiftCount'
d:\vc\microsoft visual studio\vc98\include\winnt.h(511) : error C2059: syntax error : ';'
d:\vc\microsoft visual studio\vc98\include\winnt.h(512) : error C2059: syntax error : ')'
d:\vc\microsoft visual studio\vc98\include\winnt.h(518) : error C2146: syntax error : missing ')' before identifier 'ShiftCount'
d:\vc\microsoft visual studio\vc98\include\winnt.h(518) : error C2081: 'DWORD' : name in formal parameter list illegal
d:\vc\microsoft visual studio\vc98\include\winnt.h(518) : error C2061: syntax error : identifier 'ShiftCount'
d:\vc\microsoft visual studio\vc98\include\winnt.h(518) : error C2059: syntax error : ';'
d:\vc\microsoft visual studio\vc98\include\winnt.h(519) : error C2059: syntax error : ')'
d:\vc\microsoft visual studio\vc98\include\winnt.h(527) : error C2146: syntax error : missing ')' before identifier 'ShiftCount'
d:\vc\microsoft visual studio\vc98\include\winnt.h(527) : error C2081: 'DWORD' : name in formal parameter list illegal
d:\vc\microsoft visual studio\vc98\include\winnt.h(527) : error C2061: syntax error : identifier 'ShiftCount'
d:\vc\microsoft visual studio\vc98\include\winnt.h(527) : error C2059: syntax error : ';'
d:\vc\microsoft visual studio\vc98\include\winnt.h(528) : error C2059: syntax error : ')'
d:\vc\microsoft visual studio\vc98\include\winnt.h(529) : error C2449: found '{' at file scope (missing function header?)
d:\vc\microsoft visual studio\vc98\include\winnt.h(537) : error C2059: syntax error : '}'
d:\vc\microsoft visual studio\vc98\include\winnt.h(559) : error C2146: syntax error : missing ')' before identifier 'ShiftCount'
d:\vc\microsoft visual studio\vc98\include\winnt.h(559) : error C2081: 'DWORD' : name in formal parameter list illegal
d:\vc\microsoft visual studio\vc98\include\winnt.h(559) : error C2061: syntax error : identifier 'ShiftCount'
d:\vc\microsoft visual studio\vc98\include\winnt.h(559) : error C2059: syntax error : ';'
d:\vc\microsoft visual studio\vc98\include\winnt.h(560) : error C2059: syntax error : ')'
d:\vc\microsoft visual studio\vc98\include\winnt.h(561) : error C2449: found '{' at file scope (missing function header?)
d:\vc\microsoft visual studio\vc98\include\winnt.h(569) : error C2059: syntax error : '}'
d:\vc\microsoft visual studio\vc98\include\winnt.h(637) : error C2143: syntax error : missing '{' before '*'
d:\vc\microsoft visual studio\vc98\include\winnt.h(665) : error C2061: syntax error : identifier 'DWORD'
d:\vc\microsoft visual studio\vc98\include\winnt.h(666) : error C2061: syntax error : identifier 'Data2'
d:\vc\microsoft visual studio\vc98\include\winnt.h(666) : error C2059: syntax error : ';'
d:\vc\microsoft visual studio\vc98\include\winnt.h(667) : error C2061: syntax error : identifier 'Data3'
d:\vc\microsoft visual studio\vc98\include\winnt.h(667) : error C2059: syntax error : ';'
d:\vc\microsoft visual studio\vc98\include\winnt.h(668) : error C2061: syntax error : identifier 'Data4'
d:\vc\microsoft visual studio\vc98\include\winnt.h(668) : error C2059: syntax error : ';'
d:\vc\microsoft visual studio\vc98\include\winnt.h(668) : error C2059: syntax error : '['
d:\vc\microsoft visual studio\vc98\include\winnt.h(669) : error C2059: syntax error : '}'
d:\vc\microsoft visual studio\vc98\include\winnt.h(677) : error C2061: syntax error : identifier 'GUID'
d:\vc\microsoft visual studio\vc98\include\winnt.h(678) : error C2061: syntax error : identifier 'Uniquifier'
d:\vc\microsoft visual studio\vc98\include\winnt.h(678) : error C2059: syntax error : ';'
d:\vc\microsoft visual studio\vc98\include\winnt.h(679) : error C2059: syntax error : '}'
d:\vc\microsoft visual studio\vc98\include\winnt.h(1687) : error C2061: syntax error : identifier 'WORD'
d:\vc\microsoft visual studio\vc98\include\winnt.h(1688) : error C2061: syntax error : identifier 'BaseLow'
d:\vc\microsoft visual studio\vc98\include\winnt.h(1688) : error C2059: syntax error : ';'
d:\vc\microsoft visual studio\vc98\include\winnt.h(1691) : error C2061: syntax error : identifier 'BYTE'
d:\vc\microsoft visual studio\vc98\include\winnt.h(1692) : error C2061: syntax error : identifier 'Flags1'
d:\vc\microsoft visual studio\vc98\include\winnt.h(1692) : error C2059: syntax error : ';'
d:\vc\microsoft visual studio\vc98\include\winnt.h(1693) : error C2061: syntax error : identifier 'Flags2'
d:\vc\microsoft visual studio\vc98\include\winnt.h(1693) : error C2059: syntax error : ';'
d:\vc\microsoft visual studio\vc98\include\winnt.h(1694) : error C2061: syntax error : identifier 'BaseHi'
d:\vc\microsoft visual studio\vc98\include\winnt.h(1694) : error C2059: syntax error : ';'
d:\vc\microsoft visual studio\vc98\include\winnt.h(1695) : error C2059: syntax error : '}'
d:\vc\microsoft visual studio\vc98\include\winnt.h(1697) : error C2061: syntax error : identifier 'DWORD'
d:\vc\microsoft visual studio\vc98\include\winnt.h(1698) : error C2061: syntax error : identifier 'Type'
d:\vc\microsoft visual studio\vc98\include\winnt.h(1698) : error C2059: syntax error : ';'
d:\vc\microsoft visual studio\vc98\include\winnt.h(1698) : error C2059: syntax error : ':'
d:\vc\microsoft visual studio\vc98\include\winnt.h(1699) : error C2061: syntax error : identifier 'Dpl'
d:\vc\microsoft visual studio\vc98\include\winnt.h(1699) : fatal error C1003: error count exceeds 100; stopping compilation
Error executing cl.exe.


Как быть? Это что такое? Заранее спасибо.

Добавлено через 2 минуты
Да, кстати, какую нужно подключить библиотеку для работы с PE заголовком?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.09.2012, 14:52     Ошибки в winnt.h
Посмотрите здесь:

ошибки в С/С++ C++
ошибки C++
C++ Ошибка при подключении winnt.h
С++ ошибки C++
C++ Настрока защиты WinNT
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
24.09.2012, 15:01     Ошибки в winnt.h #2
мб #include <windows.h> ?
lannnser
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 4
24.09.2012, 15:08  [ТС]     Ошибки в winnt.h #3
Да, ошибок стало меньше, но все-таки...

d:\c_projects\virrus\cih_cure.c(17) : warning C4305: 'initializing' : truncation from 'const int ' to 'char '
d:\c_projects\virrus\cih_cure.c(17) : warning C4305: 'initializing' : truncation from 'const int ' to 'char '
d:\c_projects\virrus\cih_cure.c(17) : warning C4305: 'initializing' : truncation from 'const int ' to 'char '
d:\c_projects\virrus\cih_cure.c(19) : warning C4013: 'open' undefined; assuming extern returning int
d:\c_projects\virrus\cih_cure.c(19) : error C2065: 'O_RDONLY' : undeclared identifier
d:\c_projects\virrus\cih_cure.c(19) : error C2065: 'O_BINARY' : undeclared identifier
d:\c_projects\virrus\cih_cure.c(20) : warning C4013: 'read' undefined; assuming extern returning int
d:\c_projects\virrus\cih_cure.c(22) : warning C4013: 'lseek' undefined; assuming extern returning int
d:\c_projects\virrus\cih_cure.c(26) : warning C4013: 'close' undefined; assuming extern returning int
Error executing cl.exe.

cih_cure.obj - 2 error(s), 7 warning(s)

Добавлено через 2 минуты
Ага, добавил #include <fcntl.h> и ошибки исчезли. Спасибо!

Добавлено через 2 минуты
Ой... А вот еще такой вопрос:

ошибка:
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/cih_cure.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

cih_cure.exe - 2 error(s), 0 warning(s)

Что делать?
-=ЮрА=-
Заблокирован
Автор FAQ
24.09.2012, 15:43     Ошибки в winnt.h #4
Цитата Сообщение от lannnser Посмотреть сообщение
ошибка:
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/cih_cure.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
cih_cure.exe - 2 error(s), 0 warning(s)
Что делать?
- выставь в опциях линкера Use MFC in a Shared DLL
Миниатюры
Ошибки в winnt.h  
lannnser
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 4
25.09.2012, 10:17  [ТС]     Ошибки в winnt.h #5
Поменял, опять ошибка:

MSVCRTD.lib(crtexe.obj) : error LNK2001: unresolved external symbol _main
Debug/cih_cure.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
-=ЮрА=-
Заблокирован
Автор FAQ
25.09.2012, 16:45     Ошибки в winnt.h #6
lannnser, опять оишбка - ты лучше проект свой полностью покажи, приводишь одну функцию и думаешь что по описанию ошибки можно 100% всё отгадать что там у тебя не так. Вот скажем у меня проект компилируется без ошибок даже с твоим первоначальным кодом. Не хватало хедеров
C
1
2
#include <io.h>
#include <fcntl.h>
Вот компилирующийся код - правда как ты используешь в коде int CheckCIH( char *filename ) я не вижу, впрочем как и тела main так что остаётся гадать какие ошибки могут быть ещё
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 <io.h>
#include <fcntl.h>
#include <stdio.h>
#include <windows.h>
 
#define SLEN 8
#define OK   0
#define BAD  1
 
IMAGE_NT_HEADERS32 pe;
IMAGE_DOS_HEADER mz;
IMAGE_SECTION_HEADER sh;
 
/* "ÏðîâåðÿëêГ*" äëÿ Win95.CIH. © ÊëèìåГ*ГІГјГҐГў ГЉ., Г‘Г*Г¬Г*Г°Г* 2001 */
int CheckCIH( char *filename ) 
{
    int  f, i;
    char buf[SLEN];
    char Sign[SLEN] ={0x55, 0x8D, 0x44, 0x24, 0xF8, 0x33, 0xDB, 0x64};
 
    f=open(filename, O_RDONLY|O_BINARY);
    read( f, &mz, sizeof(IMAGE_DOS_HEADER));
    if ((mz.e_magic==0x5A4D)&&(mz.e_lfarlc>=0x40)) 
    {
        lseek( f, mz.e_lfanew, SEEK_SET);
        read( f, &pe, sizeof(IMAGE_NT_HEADERS32));
        if (pe.Signature==0x4550) 
        {
            lseek( f, pe.OptionalHeader.AddressOfEntryPoint, SEEK_SET);
            read( f, buf, SLEN); 
            close(f);
            for (i=0;i<SLEN;i++) 
                if (buf[i] != Sign[i]) 
                    return OK;
            return BAD;
        }
    }
    close(f); 
    return OK;
}
 
int main()
{
    return 0;
}
Миниатюры
Ошибки в winnt.h  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2012, 14:49     Ошибки в winnt.h
Еще ссылки по теме:

winnt.h(5545) : error C2146: что за ошибка ? C++
С++ ошибки C++
Ошибки C++

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

Или воспользуйтесь поиском по форуму:
lannnser
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 4
26.09.2012, 14:49  [ТС]     Ошибки в winnt.h #7
Спасибо, скомпилил.
Yandex
Объявления
26.09.2012, 14:49     Ошибки в winnt.h
Ответ Создать тему
Опции темы

Текущее время: 04:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru