Предупреждение обработано как ошибка файл object не создан

I have below class

class Cdata12Mnt
{
public:
    char IOBname[ID1_IOB_PIOTSUP-ID1_IOB_TOP][BOADNAM_MAX + 4];
    char ExIOBname[ID1_MAX_INF-ID1_EXIOB_U1TOP][BOADNAM_MAX + 4];
    char cflpath[256];
    char basetext[256];
    UINT database[ID1_MAX_INF];
    int State;

public:
    char SelectPath[256];

public:
    int GetIOBName(int slt,char *Name);
    Cdata12Mnt(char *SelectPath);
    virtual ~Cdata12Mnt();
    int     GetValue(int id);
    int     GetState() { return State; }
};

And I have function as below

Cdata12Mnt::Cdata12Mnt(char *SelectPath)
{
    SCTReg  reg;
    char    buf[256], *cpnt, *npnt, *bpnt1, *bpnt2;
    char    *startcode[] = {"CNTL_CODE ","SEGMENT "};
    char    *stopcode    = {"END_CNTL_CODE "};
    FILE    *fp;
    int     ii, infl;

    State = 0;

    for (ii = 0; ii < (ID1_IOB_PIOTSUP - ID1_IOB_TOP); ii++) {
        strcpy(IOBname[ii], "");
    }

    for (ii = 0; ii < (ID1_MAX_INF-ID1_EXIOB_U1TOP); ii++) {
        **strcpy(ExIOBname[ii], "");**
    }

    sprintf(cflpath, "%s\%s", SelectPath, CDATAFL);

    if ((fp = fopen(cflpath,"r"))!=NULL) {
        for (ii = 0, infl = 0; fgets(buf, 256, fp) != NULL;) {
            if (infl == 0 && strncmp(buf, startcode[0], strlen(startcode[0])) == 0) {
                if ((cpnt = strchr(&buf[strlen(startcode[0])],*startcode[1])) != NULL) {
                    if (strncmp(cpnt,startcode[1], strlen(startcode[1])) == 0) {
                        infl = 1;
                        continue;
                    }
                }
            }

            if (infl == 0) {
                continue;
            }

            if (strncmp(buf,stopcode,strlen(stopcode))==0) {
                if (ii == ID1_EXIOB_U1TOP) {
                    for (int nDataNumber = ii; nDataNumber < ID1_MAX_INF; nDataNumber++) {
                        database[nDataNumber] = 0;
                    }
                }

                infl = 0;
                continue;
            }

            if (strncmp(&buf[14], " DD ", 4) == 0) {
                if ((cpnt=strchr(buf, ';')) != NULL) {
                    *cpnt = '';
                }

                if (ii >= ID1_IOB_TOP && ii < ID1_IOB_PIOTSUP) {
                    if ((bpnt1 = strchr(cpnt + 1,'(')) != NULL && (bpnt2=strchr(cpnt + 1,')'))!=NULL && bpnt1 < bpnt2) {
                        *bpnt2 = '';
                        *(bpnt1 + BOADNAM_MAX + 1) = '';
                        strcpy(IOBname[ii-ID1_IOB_TOP], bpnt1 + 1);
                    }
                }

                if (ii >= ID1_EXIOB_U1TOP && ii < ID1_MAX_INF) {
                    if ((bpnt1 = strchr(cpnt + 1, '(')) != NULL && (bpnt2=strchr(cpnt+1,')'))!=NULL && bpnt1 < bpnt2) {
                            *bpnt2='';
                            *(bpnt1+BOADNAM_MAX+1)='';
                            strcpy(ExIOBname[ii-ID1_EXIOB_U1TOP], bpnt1 + 1);
                    }
                }

                for (cpnt = &buf[18]; cpnt != NULL;) {
                    if ((npnt=strchr(cpnt, ',')) != NULL)
                        *npnt='';
                }

                if (strchr(cpnt,'H')!=NULL) {
                    sscanf(cpnt,"%XH",&database[ii]);
                } else {
                    database[ii]=atoi(cpnt);
                }

                ii++;
                cpnt = npnt;

                if (cpnt != NULL) {
                    cpnt++;
                }
            }
        }
    }

    fclose(fp);
} else {
    State=-1;
}

When I compile this function in Visual studio 2008, it gives me error at strcpy(IOBname[ii],""); as below

error C2220: warning treated as error — no ‘object’ file generated

How to fix this error?

I have below class

class Cdata12Mnt
{
public:
    char IOBname[ID1_IOB_PIOTSUP-ID1_IOB_TOP][BOADNAM_MAX + 4];
    char ExIOBname[ID1_MAX_INF-ID1_EXIOB_U1TOP][BOADNAM_MAX + 4];
    char cflpath[256];
    char basetext[256];
    UINT database[ID1_MAX_INF];
    int State;

public:
    char SelectPath[256];

public:
    int GetIOBName(int slt,char *Name);
    Cdata12Mnt(char *SelectPath);
    virtual ~Cdata12Mnt();
    int     GetValue(int id);
    int     GetState() { return State; }
};

And I have function as below

Cdata12Mnt::Cdata12Mnt(char *SelectPath)
{
    SCTReg  reg;
    char    buf[256], *cpnt, *npnt, *bpnt1, *bpnt2;
    char    *startcode[] = {"CNTL_CODE ","SEGMENT "};
    char    *stopcode    = {"END_CNTL_CODE "};
    FILE    *fp;
    int     ii, infl;

    State = 0;

    for (ii = 0; ii < (ID1_IOB_PIOTSUP - ID1_IOB_TOP); ii++) {
        strcpy(IOBname[ii], "");
    }

    for (ii = 0; ii < (ID1_MAX_INF-ID1_EXIOB_U1TOP); ii++) {
        **strcpy(ExIOBname[ii], "");**
    }

    sprintf(cflpath, "%s\%s", SelectPath, CDATAFL);

    if ((fp = fopen(cflpath,"r"))!=NULL) {
        for (ii = 0, infl = 0; fgets(buf, 256, fp) != NULL;) {
            if (infl == 0 && strncmp(buf, startcode[0], strlen(startcode[0])) == 0) {
                if ((cpnt = strchr(&buf[strlen(startcode[0])],*startcode[1])) != NULL) {
                    if (strncmp(cpnt,startcode[1], strlen(startcode[1])) == 0) {
                        infl = 1;
                        continue;
                    }
                }
            }

            if (infl == 0) {
                continue;
            }

            if (strncmp(buf,stopcode,strlen(stopcode))==0) {
                if (ii == ID1_EXIOB_U1TOP) {
                    for (int nDataNumber = ii; nDataNumber < ID1_MAX_INF; nDataNumber++) {
                        database[nDataNumber] = 0;
                    }
                }

                infl = 0;
                continue;
            }

            if (strncmp(&buf[14], " DD ", 4) == 0) {
                if ((cpnt=strchr(buf, ';')) != NULL) {
                    *cpnt = '';
                }

                if (ii >= ID1_IOB_TOP && ii < ID1_IOB_PIOTSUP) {
                    if ((bpnt1 = strchr(cpnt + 1,'(')) != NULL && (bpnt2=strchr(cpnt + 1,')'))!=NULL && bpnt1 < bpnt2) {
                        *bpnt2 = '';
                        *(bpnt1 + BOADNAM_MAX + 1) = '';
                        strcpy(IOBname[ii-ID1_IOB_TOP], bpnt1 + 1);
                    }
                }

                if (ii >= ID1_EXIOB_U1TOP && ii < ID1_MAX_INF) {
                    if ((bpnt1 = strchr(cpnt + 1, '(')) != NULL && (bpnt2=strchr(cpnt+1,')'))!=NULL && bpnt1 < bpnt2) {
                            *bpnt2='';
                            *(bpnt1+BOADNAM_MAX+1)='';
                            strcpy(ExIOBname[ii-ID1_EXIOB_U1TOP], bpnt1 + 1);
                    }
                }

                for (cpnt = &buf[18]; cpnt != NULL;) {
                    if ((npnt=strchr(cpnt, ',')) != NULL)
                        *npnt='';
                }

                if (strchr(cpnt,'H')!=NULL) {
                    sscanf(cpnt,"%XH",&database[ii]);
                } else {
                    database[ii]=atoi(cpnt);
                }

                ii++;
                cpnt = npnt;

                if (cpnt != NULL) {
                    cpnt++;
                }
            }
        }
    }

    fclose(fp);
} else {
    State=-1;
}

When I compile this function in Visual studio 2008, it gives me error at strcpy(IOBname[ii],""); as below

error C2220: warning treated as error — no ‘object’ file generated

How to fix this error?

    msm.ru

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

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

    >
    error: предупреждение обработано как ошибка — файл «object» не создан

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



    Сообщ.
    #1

    ,
    12.09.11, 13:14

      Full Member

      ***

      Рейтинг (т): 2

      переношу код с проекта в проект вилазит такая ошибка
      предупреждение обработано как ошибка — файл «object» не создан — как убрать ету ошибку

      ExpandedWrap disabled

        wchar_t ch0, ch1, ch2;

        ch0 = _tcstol( strEncodedText.Mid( i+1, 2 ), NULL, 16 ); <<<< ерор

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


      like-nix



      Сообщ.
      #2

      ,
      12.09.11, 13:25

        Senior Member

        ****

        Рейтинг (т): 27

        _tcstol,эта функция кажется в лонг конвертит судя по названию, к файлам наверное отношения не имеет.

        Цитата NOCaut @ 12.09.11, 13:14

        strEncodedText

        Это что за объект?


        NOCaut



        Сообщ.
        #3

        ,
        12.09.11, 13:28

          Full Member

          ***

          Рейтинг (т): 2

          Cstring strEncodedText;

          Но на другом моем проекте она ж работает :-?

          Добавлено 12.09.11, 13:30
          неработает само присвоение. сама строчка рабочая


          like-nix



          Сообщ.
          #4

          ,
          12.09.11, 13:31

            Senior Member

            ****

            Рейтинг (т): 27

            NOCaut, напиши полный текст отчета компилятора об ошибке.


            NOCaut



            Сообщ.
            #5

            ,
            12.09.11, 13:33

              Full Member

              ***

              Рейтинг (т): 2

              ExpandedWrap disabled

                1>—— Построение начато: проект: WebCtrl, Конфигурация: Release UNICODE Win32 ——

                1>Компиляция…

                1>CntrEvnt2.cpp

                1>.CntrEvnt2.cpp(28) : error C2220: предупреждение обработано как ошибка — файл «object» не создан

                1>.CntrEvnt2.cpp(28) : warning C4244: =: преобразование ‘long’ в ‘wchar_t’, возможна потеря данных

              Сообщение отредактировано: NOCaut — 12.09.11, 13:33


              like-nix



              Сообщ.
              #6

              ,
              12.09.11, 13:34

                Senior Member

                ****

                Рейтинг (т): 27

                Возможно _tcstol не может сконвертить CSring во что-то не зная сигнатуры _tcstol трудно сказать во что.

                Добавлено 12.09.11, 13:36
                http://www.codeguru.com/forum/archive/index.php/t-369504.html
                Возможно второй параметр функции должен быть не NULL


                maxim84_



                Сообщ.
                #7

                ,
                12.09.11, 13:37

                  Цитата

                  Возможно _tcstol не может сконвертить CSring во что-то не зная сигнатуры _tcstol трудно сказать во что.

                  _tcstol


                  NOCaut



                  Сообщ.
                  #8

                  ,
                  12.09.11, 13:37

                    Full Member

                    ***

                    Рейтинг (т): 2

                    щас проверим

                    Добавлено 12.09.11, 13:38
                    да нет же говорю правая часть строки РАБОЧАЯ

                    Добавлено 12.09.11, 13:39

                    ExpandedWrap disabled

                      _tcstol( strEncodedText.Mid( i+1, 2 ), NULL, 16 );

                    так компилится

                    Добавлено 12.09.11, 13:41
                    ето наверное структура проекта дуратская. за нее все


                    like-nix



                    Сообщ.
                    #9

                    ,
                    12.09.11, 13:42

                      Senior Member

                      ****

                      Рейтинг (т): 27

                      Ну а если сделать явное приведение?


                      maxim84_



                      Сообщ.
                      #10

                      ,
                      12.09.11, 13:43

                        :lool:

                        ExpandedWrap disabled

                          wchar_t* _result = 0;

                          DWORD count = _tcstol( strEncodedText.Mid( i+1, 2 ), &_result, 16 );

                        Как-то так.


                        NOCaut



                        Сообщ.
                        #11

                        ,
                        12.09.11, 13:45

                          Full Member

                          ***

                          Рейтинг (т): 2

                          ExpandedWrap disabled

                            CString URLDecode( CString strEncodedText )

                            {

                                CString strResult;

                                wchar_t ch0, ch1, ch2;

                                wchar_t wch;

                                TCHAR tch;

                                int i = 0;

                                while( i<strEncodedText.GetLength() )

                                {

                                    tch = strEncodedText.GetAt(i);

                                    if( tch != _T(‘%’) )

                                    {

                                        // a character not encoded

                                        strResult += tch;

                                        i++;

                                    }

                                    else

                                    {

                                        // a character encoded !!

                                        ch0 = _tcstol( strEncodedText.Mid( i+1, 2 ), NULL, 16 );

                                        i += 3;

                                        if( ch0 < 0x80 )

                                            // 1 byte for UTF-8

                                            // 0xxx xxxx

                                            wch = ch0;

                                        else

                                        {

                                            if( strEncodedText.GetAt(i)!= _T(‘%’) ) // Error!

                                                continue;

                                            ch1 = _tcstol( strEncodedText.Mid( i+1, 2 ), NULL, 16 );

                                            i += 3;

                                            if( ch0 < 0xe0 )

                                            {

                                                // 2 byte for UTF-8

                                                // 110x xxxx 10xx xxxx

                                                wch = ((ch0&0x1f)<<6)

                                                    | (ch1&0x3f);

                                            }

                                            else

                                            {

                                                // 3 byte for UTF-8

                                                if( strEncodedText.GetAt(i)!= _T(‘%’) ) // Error!

                                                    continue;

                                                ch2 = _tcstol( strEncodedText.Mid( i+1, 2 ), NULL, 16 );

                                                i += 3;

                                                // 1110 xxxx 10xx xxxx 10xx xxxx

                                                wch = ((ch0&0x0f)<<12)

                                                    | ((ch1&0x3f)<<6)

                                                    | (ch2&0x3f);

                                            }

                                        }

                                        strResult += wch;

                                    }

                                }

                            }

                                return strResult;

                          Добавлено 12.09.11, 13:48
                          а можнго както компилятор настроить?


                          trainer



                          Сообщ.
                          #12

                          ,
                          12.09.11, 13:50

                            Отвечающие здесь — вы хоть сообщение об ошибке читаете? В настройках проекта стоит высокий уровень предупреждений — предупреждения рассматриваются как ошибки, соответственно компиляция не проходит.


                            like-nix



                            Сообщ.
                            #13

                            ,
                            12.09.11, 13:53

                              Senior Member

                              ****

                              Рейтинг (т): 27

                              trainer, :D


                              NOCaut



                              Сообщ.
                              #14

                              ,
                              12.09.11, 13:53

                                Full Member

                                ***

                                Рейтинг (т): 2

                                спасибо. а где ети настройки?


                                trainer



                                Сообщ.
                                #15

                                ,
                                12.09.11, 13:53

                                  Нужно либо убрать источник предупреждения — [неявное] преобразование long в wchar_t с возможной потерей значащих разрядов, либо убрать ключик /WX, либо добавить /wd4244, либо с помощью #pragma warning подавить это предупреждение в этом конкретном месте.

                                  Сообщение отредактировано: trainer — 12.09.11, 14:00

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

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

                                  • Предыдущая тема
                                  • C/C++: Общие вопросы
                                  • Следующая тема

                                  Рейтинг@Mail.ru

                                  [ Script execution time: 0,0612 ]   [ 16 queries used ]   [ Generated: 27.06.23, 10:21 GMT ]  

                                  У меня есть ниже класс:

                                  class Cdata12Mnt
                                  {
                                  public:
                                  char IOBname[ID1_IOB_PIOTSUP-ID1_IOB_TOP][BOADNAM_MAX + 4];
                                  char ExIOBname[ID1_MAX_INF-ID1_EXIOB_U1TOP][BOADNAM_MAX + 4];
                                  char cflpath[256];
                                  char basetext[256];
                                  UINT database[ID1_MAX_INF];
                                  int State;
                                  
                                  public:
                                  char SelectPath[256];
                                  
                                  public:
                                  int GetIOBName(int slt,char *Name);
                                  Cdata12Mnt(char *SelectPath);
                                  virtual ~Cdata12Mnt();
                                  int     GetValue(int id);
                                  int     GetState() { return State; }
                                  };
                                  

                                  И у меня есть функция как ниже:

                                  Cdata12Mnt::Cdata12Mnt(char *SelectPath)
                                  {
                                  SCTReg  reg;
                                  char    buf[256], *cpnt, *npnt, *bpnt1, *bpnt2;
                                  char    *startcode[] = {"CNTL_CODE ","SEGMENT "};
                                  char    *stopcode    = {"END_CNTL_CODE "};
                                  FILE    *fp;
                                  int     ii, infl;
                                  
                                  State = 0;
                                  
                                  for (ii = 0; ii < (ID1_IOB_PIOTSUP - ID1_IOB_TOP); ii++) {
                                  strcpy(IOBname[ii], "");
                                  }
                                  
                                  for (ii = 0; ii < (ID1_MAX_INF-ID1_EXIOB_U1TOP); ii++) {
                                  **strcpy(ExIOBname[ii], "");**
                                  }
                                  
                                  sprintf(cflpath, "%s%s", SelectPath, CDATAFL);
                                  
                                  if ((fp = fopen(cflpath,"r"))!=NULL) {
                                  for (ii = 0, infl = 0; fgets(buf, 256, fp) != NULL;) {
                                  if (infl == 0 && strncmp(buf, startcode[0], strlen(startcode[0])) == 0) {
                                  if ((cpnt = strchr(&buf[strlen(startcode[0])],*startcode[1])) != NULL) {
                                  if (strncmp(cpnt,startcode[1], strlen(startcode[1])) == 0) {
                                  infl = 1;
                                  continue;
                                  }
                                  }
                                  }
                                  
                                  if (infl == 0) {
                                  continue;
                                  }
                                  
                                  if (strncmp(buf,stopcode,strlen(stopcode))==0) {
                                  if (ii == ID1_EXIOB_U1TOP) {
                                  for (int nDataNumber = ii; nDataNumber < ID1_MAX_INF; nDataNumber++) {
                                  database[nDataNumber] = 0;
                                  }
                                  }
                                  
                                  infl = 0;
                                  continue;
                                  }
                                  
                                  if (strncmp(&buf[14], " DD ", 4) == 0) {
                                  if ((cpnt=strchr(buf, ';')) != NULL) {
                                  *cpnt = '';
                                  }
                                  
                                  if (ii >= ID1_IOB_TOP && ii < ID1_IOB_PIOTSUP) {
                                  if ((bpnt1 = strchr(cpnt + 1,'(')) != NULL && (bpnt2=strchr(cpnt + 1,')'))!=NULL && bpnt1 < bpnt2) {
                                  *bpnt2 = '';
                                  *(bpnt1 + BOADNAM_MAX + 1) = '';
                                  strcpy(IOBname[ii-ID1_IOB_TOP], bpnt1 + 1);
                                  }
                                  }
                                  
                                  if (ii >= ID1_EXIOB_U1TOP && ii < ID1_MAX_INF) {
                                  if ((bpnt1 = strchr(cpnt + 1, '(')) != NULL && (bpnt2=strchr(cpnt+1,')'))!=NULL && bpnt1 < bpnt2) {
                                  *bpnt2='';
                                  *(bpnt1+BOADNAM_MAX+1)='';
                                  strcpy(ExIOBname[ii-ID1_EXIOB_U1TOP], bpnt1 + 1);
                                  }
                                  }
                                  
                                  for (cpnt = &buf[18]; cpnt != NULL;) {
                                  if ((npnt=strchr(cpnt, ',')) != NULL)
                                  *npnt='';
                                  }
                                  
                                  if (strchr(cpnt,'H')!=NULL) {
                                  sscanf(cpnt,"%XH",&database[ii]);
                                  } else {
                                  database[ii]=atoi(cpnt);
                                  }
                                  
                                  ii++;
                                  cpnt = npnt;
                                  
                                  if (cpnt != NULL) {
                                  cpnt++;
                                  }
                                  }
                                  }
                                  }
                                  
                                  fclose(fp);
                                  } else {
                                  State=-1;
                                  }
                                  

                                  Когда я компилирую эту функцию в Visual Studio 2008, она выдает ошибку при strcpy(IOBname[ii],""); как ниже.

                                  ошибка C2220: предупреждение рассматривается как ошибка — файл объекта не создан

                                  Как исправить эту ошибку?

                                  21

                                  Решение

                                  Ошибка говорит о том, что предупреждение было обработано как ошибка. Поэтому ваша проблема — предупреждающее сообщение! Проверьте их и исправьте их.

                                  Если вы не знаете, как их найти: откройте Error List (View > Error List) и нажмите на Warning,

                                  23

                                  Другие решения

                                  Идти к project properties -> configurations properties -> C/C++ -> treats warning as error -> No (/WX-),

                                  10

                                  Это сообщение об ошибке очень запутанно. Я просто исправил другие «предупреждения» в своем проекте, и у меня действительно было только одно (простое):

                                  предупреждение C4101: ‘i’: локальная переменная без ссылки

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

                                  5

                                  Как примечание, вы можете включить / отключить отдельные предупреждения, используя #pragma, Вы можете взглянуть на документацию Вот

                                  Из документации:

                                  // pragma_warning.cpp
                                  // compile with: /W1
                                  #pragma warning(disable:4700)
                                  void Test() {
                                  int x;
                                  int y = x;   // no C4700 here
                                  #pragma warning(default:4700)   // C4700 enabled after Test ends
                                  }
                                  
                                  int main() {
                                  int x;
                                  int y = x;   // C4700
                                  }
                                  

                                  3

                                  Это предупреждение о небезопасном использовании strcpy. Пытаться IOBname[ii]=''; вместо.

                                  1

                                  Я пытаюсь создать свой первый Пример COM, я создал проект VS 2012. Я получил ошибки в библиотеке, которые я решил, изменив _WIN32_WINNT на 0x0601 для Windows 7 и, по-видимому, изменив _WIN32_IE на 0x0800 в StdAfx.h. Также я изменил _WIN32_WINNT в Settings -> C/C++ -> Preprocessor, и теперь я получаю ошибки, как показано ниже.

                                  1>------ Build started: Project: COM, Configuration: Debug x64 ------
                                  1>  COMIntro.cpp
                                  1>COMIntro.cpp(21): error C2220: warning treated as error - no 'object' file generated
                                  1>COMIntro.cpp(21): warning C4100: 'envp' : unreferenced formal parameter
                                  1>COMIntro.cpp(21): warning C4100: 'argv' : unreferenced formal parameter
                                  1>COMIntro.cpp(21): warning C4100: 'argc' : unreferenced formal parameter
                                  1>  StdAfx.cpp
                                  1>  Generating Code...
                                  ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
                                  

                                  Это связано с моей версией Windows SDK 7.1 или с какой-то проблемой совместимости?

                                  1 ответ

                                  Я должен был сделать некоторые поиски в первую очередь. Я запутался между COM и несколькими другими новыми концепциями, которые я упустил из виду в обычных C++, что нужно и чего нельзя делать.

                                  Я просто использовал кастинг. неиспользуемые переменные вызывали эту проблему

                                  (void)argc;
                                  (void)argv;
                                  (void)envp;
                                  

                                  Правильное решение Использование UNREFERENCED_PARAMETER работает для меня.


                                  -2

                                  CMouse
                                  7 Июн 2017 в 11:27

                                  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
                                  52
                                  53
                                  54
                                  55
                                  56
                                  57
                                  58
                                  59
                                  60
                                  61
                                  62
                                  63
                                  64
                                  65
                                  66
                                  67
                                  68
                                  69
                                  70
                                  71
                                  72
                                  73
                                  74
                                  75
                                  76
                                  77
                                  78
                                  79
                                  80
                                  81
                                  82
                                  83
                                  84
                                  85
                                  86
                                  87
                                  88
                                  89
                                  90
                                  91
                                  92
                                  93
                                  94
                                  95
                                  96
                                  97
                                  98
                                  99
                                  100
                                  101
                                  102
                                  103
                                  104
                                  105
                                  106
                                  107
                                  108
                                  109
                                  110
                                  111
                                  112
                                  113
                                  114
                                  115
                                  116
                                  117
                                  118
                                  119
                                  120
                                  121
                                  122
                                  123
                                  124
                                  125
                                  126
                                  127
                                  128
                                  129
                                  130
                                  131
                                  132
                                  133
                                  134
                                  135
                                  136
                                  137
                                  138
                                  139
                                  140
                                  141
                                  142
                                  143
                                  144
                                  145
                                  146
                                  147
                                  148
                                  149
                                  150
                                  151
                                  152
                                  153
                                  154
                                  155
                                  156
                                  157
                                  158
                                  159
                                  160
                                  161
                                  162
                                  163
                                  164
                                  165
                                  166
                                  167
                                  168
                                  169
                                  170
                                  171
                                  172
                                  173
                                  174
                                  175
                                  176
                                  177
                                  178
                                  179
                                  180
                                  181
                                  182
                                  183
                                  184
                                  185
                                  186
                                  187
                                  188
                                  189
                                  190
                                  191
                                  192
                                  193
                                  194
                                  195
                                  196
                                  197
                                  198
                                  199
                                  200
                                  201
                                  202
                                  203
                                  204
                                  205
                                  206
                                  207
                                  208
                                  209
                                  210
                                  211
                                  212
                                  213
                                  214
                                  215
                                  216
                                  217
                                  218
                                  219
                                  220
                                  221
                                  222
                                  223
                                  224
                                  225
                                  226
                                  227
                                  228
                                  229
                                  230
                                  231
                                  232
                                  233
                                  234
                                  235
                                  236
                                  237
                                  238
                                  239
                                  240
                                  241
                                  242
                                  243
                                  244
                                  245
                                  246
                                  247
                                  248
                                  249
                                  250
                                  251
                                  252
                                  253
                                  254
                                  
                                  #include <ntddk.h> #include <initguid.h>   // // Disable warning: nonstandard extension used : nameless struct/union // #pragma warning(push) #pragma warning(disable: 4201)   #include <fwpsk.h> #include <fwpmk.h>   #pragma warning(pop)   #define LogDbg(fmt, ...) DbgPrintEx(DPFLTR_IHVDRIVER_ID, 0, "%s:%d "fmt"rn", __FUNCTION__, __LINE__, ##__VA_ARGS__)     DEFINE_GUID(     INSPECT_ALE_CONNECT_CALLOUT_V4,     0x76b743d4,     0x1249,     0x4614,     0xa6, 0x32, 0x6f, 0x9c, 0x4d, 0x08, 0xd2, 0x5a     );   DEFINE_GUID(     INSPECT_SUBLAYER,     0x2e207682,     0xd95f,     0x4525,     0xb9, 0x66, 0x96, 0x9f, 0x26, 0x58, 0x7f, 0x03     );   UINT32 g_aleConnectCalloutIdV4; FWPM_SESSION0 g_session = {0}; HANDLE g_hEngine;   VOID ConnectClassify(const FWPS_INCOMING_VALUES0 *inFixedValues,                      const FWPS_INCOMING_METADATA_VALUES0 *inMetaValues,                      OUT VOID *layerData,                      const FWPS_FILTER0 *filter,                      UINT64 flowContext,                      OUT FWPS_CLASSIFY_OUT0 *classifyOut ) {     ULONG  RemoteAddr;     USHORT RemotePort;         UNREFERENCED_PARAMETER(inMetaValues);     UNREFERENCED_PARAMETER(layerData);     UNREFERENCED_PARAMETER(filter);     UNREFERENCED_PARAMETER(flowContext);     UNREFERENCED_PARAMETER(classifyOut);           RemoteAddr = inFixedValues->incomingValue[         FWPS_FIELD_ALE_AUTH_CONNECT_V4_IP_REMOTE_ADDRESS         ].value.uint32;             RemotePort = inFixedValues->incomingValue[         FWPS_FIELD_ALE_AUTH_CONNECT_V4_IP_REMOTE_PORT         ].value.uint16;             LogDbg("Connect to 0x%.8lx:%lu", RemoteAddr, RemotePort); }   NTSTATUS ConnectNotify(     FWPS_CALLOUT_NOTIFY_TYPE notifyType,     const GUID* filterKey,     const FWPS_FILTER* filter     ) {     UNREFERENCED_PARAMETER(notifyType);     UNREFERENCED_PARAMETER(filterKey);     UNREFERENCED_PARAMETER(filter);         return STATUS_SUCCESS; }   NTSTATUS AddFilter(const wchar_t* filterName, const wchar_t* filterDesc, const GUID* layerKey, const GUID* calloutKey) {     NTSTATUS status = STATUS_SUCCESS;     FWPM_FILTER0 filter = {0};     FWPM_FILTER_CONDITION0 filterCondition[1] = {0};         // ULONG ip_addr = 0xD40CF388; //88.F3.0C.D4 (136.243.12.212) [url]www.stu**********[/url]         ULONG ip_addr = 0x88F30CD4;       filter.layerKey = *layerKey;     filter.displayData.name = (wchar_t *)filterName;     filter.displayData.description = (wchar_t *)filterDesc;     filter.action.type = FWP_ACTION_CALLOUT_TERMINATING;     filter.action.calloutKey = *calloutKey;     filter.filterCondition = filterCondition;     filter.subLayerKey = INSPECT_SUBLAYER;     filter.weight.type = FWP_EMPTY;     filter.rawContext = 0;         filterCondition[0].fieldKey = FWPM_CONDITION_IP_REMOTE_ADDRESS;     filterCondition[0].matchType = FWP_MATCH_EQUAL;     filterCondition[0].conditionValue.type = FWP_UINT32;     filterCondition[0].conditionValue.uint32 = ip_addr;       LogDbg("Test message: 0x%X", ip_addr);     filter.numFilterConditions = 1;       status = FwpmFilterAdd0(g_hEngine, &filter, NULL, NULL);     if (!NT_SUCCESS(status)) {         LogDbg("FwpmFilterAdd0 Error 0x%X !", status);         return status;     }       return status; }   NTSTATUS RegisterAleClassifyCallout(     const GUID* layerKey,     const GUID* calloutKey,     void* deviceObject,     UINT32* calloutId     ) {     NTSTATUS status = STATUS_SUCCESS;     FWPS_CALLOUT0 sCallout = {0};     FWPM_CALLOUT0 mCallout = {0};     FWPM_DISPLAY_DATA0 displayData = {0};       sCallout.calloutKey = *calloutKey;     sCallout.classifyFn = ConnectClassify;     sCallout.notifyFn = (FWPS_CALLOUT_NOTIFY_FN0)ConnectNotify;         status = FwpsCalloutRegister0(deviceObject, &sCallout, calloutId);     if (!NT_SUCCESS(status)) {         LogDbg("FwpsCalloutRegister0 Error 0x%X !", status);         return status;     }       displayData.name = L"Ale Classify Callout";     displayData.description = L"Intercepts connect";       mCallout.calloutKey = *calloutKey;     mCallout.displayData = displayData;     mCallout.applicableLayer = *layerKey;       status = FwpmCalloutAdd0(g_hEngine, &mCallout, NULL, NULL);     if (!NT_SUCCESS(status)) {         LogDbg("FwpmCalloutAdd0 Error 0x%X !", status);         return status;     }       status = AddFilter(L"Transport ALE Classify", L"Intercepts connect attempts", layerKey, calloutKey);     if (!NT_SUCCESS(status)) {         return status;     }     return status; }   NTSTATUS RegisterCallouts(VOID* deviceObj) {     NTSTATUS status = STATUS_SUCCESS;     FWPM_SUBLAYER0 subLayer;       RtlZeroMemory(&subLayer, sizeof(FWPM_SUBLAYER0));     subLayer.subLayerKey = INSPECT_SUBLAYER;     subLayer.displayData.name = L"Transport Sub-Layer";     subLayer.displayData.description = L"Sub-Layer for use by Transport callouts";     subLayer.flags = 0;     subLayer.weight = 0;       status = FwpmSubLayerAdd0(g_hEngine, &subLayer, NULL);     if (!NT_SUCCESS(status)) {         LogDbg("FwpmSubLayerAdd0 Error 0x%X !", status);         return status;     }       status = RegisterAleClassifyCallout(&FWPM_LAYER_ALE_AUTH_CONNECT_V4, &INSPECT_ALE_CONNECT_CALLOUT_V4, deviceObj, &g_aleConnectCalloutIdV4);     if (!NT_SUCCESS(status)) {         return status;     }       status = FwpmTransactionCommit0(g_hEngine);     if (!NT_SUCCESS(status)) {         LogDbg("FwpmTransactionCommit0 Error 0x%X !", status);         return status;     }     return status; }   //Close Engine in system static VOID CloseEngine(VOID) {     NTSTATUS err;         err = FwpmEngineClose0(g_hEngine);     if (!NT_SUCCESS(err)) {         LogDbg("FwpmEngineClose0 Error: 0x%X !", err);         return;     } }   VOID TransactionAbort(VOID) {     NTSTATUS err = STATUS_SUCCESS;     err = FwpmTransactionAbort0(g_hEngine);     if (!NT_SUCCESS(err)) {         LogDbg("FwpmTransactionAbort0 Error: 0x%X !", err);         return;     } } //Open Engine in system static NTSTATUS RegEngine(VOID) {     NTSTATUS err;       g_session.flags = FWPM_SESSION_FLAG_DYNAMIC;     err = FwpmEngineOpen0(NULL, RPC_C_AUTHN_WINNT, NULL, &g_session, &g_hEngine);     if (!NT_SUCCESS(err)) {         LogDbg("FwpmEngineOpen0 Error: 0x%X !", err);         CloseEngine();         return err;     }       err = FwpmTransactionBegin0(g_hEngine, 0);     if (!NT_SUCCESS(err)) {         TransactionAbort();         LogDbg("FwpmTransactionBegin0 Error: 0x%X !", err);         return err;     }       return err; }   NTSTATUS DriverEntry(PDRIVER_OBJECT drvObject, PUNICODE_STRING regPath) {         NTSTATUS status = STATUS_SUCCESS;     DEVICE_OBJECT device;         UNREFERENCED_PARAMETER(drvObject);     UNREFERENCED_PARAMETER(regPath);       // Register in system     status = RegEngine();     if (!NT_SUCCESS(status)) {         return status;     }     LogDbg("Engine register success!n");       // Register Callouts     status = RegisterCallouts(&device);     if (!NT_SUCCESS(status)) {         return status;     }     LogDbg("Callouts register success!n");       return status; }

                                  Уважаемый гость, добро пожаловать на форум: CRYMOD.NET — Портал сообщества CryENGINE. Если вы здесь впервые, то, пожалуйста, прочитайте раздел Помощь. В этом разделе можно подробно ознакомится с функционалом данной системы. Что бы использовать все возможности системы, необходимо зарегистрироваться. Для этого пройдите по ссылке и узнайте подробнее о процессе регистрации.
                                  В случае если вы уже зарегистрировались – войдите под своей учётной записью.

                                  Основные ошибки компилятора

                                  Пожалуйста пишите о ваших ошибках компилятора только в этой теме. Благодарю за сотрудничество :)

                                  Внимание ! Нижеследующие ошибки чаще всего возникают из-зи неправильной версии Visual Studio. Если нижеописанные решения не помогли, попробуйте установить Visual Studio 2005 Professional, это должно помочь.

                                  Общие проблемы:

                                  1. Cannot find afxres.h
                                    Откройте GameDll.rc и замените afxres.h на windows.h

                                    Код

                                    1 2 
                                    //#include "afxres.h" //закоментируйте afxres.h #include "windows.h"
                                  2. Fatal error RC1015: cannot open include file ‘windows.h’.

                                    У вас не установлен Windows Platform SDK. Его можно скачать здесь: Download: Windows SDK for Windows Server 2008 and .NET Framework version 3.5 — Microsoft Download Center — Download Details

                                  3. (Visual Studio 2010) error C2440, utility (163)
                                    Откройте NetHelpers.h и замените это:

                                    Код

                                    1 
                                    return TNetMessageCallbackResult( ((cls*)p)->Handle##name( serialize, curSeq, oldSeq, pEntityId, pChannel ), NULL ); 

                                    На это:

                                    Код

                                    1 
                                    return TNetMessageCallbackResult( ((cls*)p)->Handle##name( serialize, curSeq, oldSeq, pEntityId, pChannel ), reinterpret_cast<INetAtSyncItem*>(NULL) ); 

                                  При загрузке CryCommon.vcproj Express Edition спрашивает хотите ли вы переконвертировать проект в формат Express Edition. Вызовет ли это проблемы совместимости ?

                                  — Проблем не вызовет.


                                  Cannot find afxres.h
                                  Откройте GameDll.rc и замените afxres.h на windows.h

                                  Вот оно что. :) Просто не то включение. :)

                                  «Как лекарство не достигает своей цели, если доза слишком велика, так и порицание и критика — когда они переходят меру справедливости.»Артур Шопенгауэр
                                  «Самый длинный путь начинается с одного шага, а не поворота ключа в замке зажигания.»Эдвард Эбби


                                  М-да… В моём VC++ 2008 Express Edition:

                                  1>d:gameselectronic artscrytekcrysismodscrysismodcodegamedll.rc(3) : error C2220: предупреждение обработано как ошибка — файл «object» не создан

                                  1>d:gameselectronic artscrytekcrysismodscrysismodcodegamedll.rc(3) : warning C4627: #include «resource.h»: пропущен при поиске использования предкомпилированного заголовка

                                  1>d:gameselectronic artscrytekcrysismodscrysismodcodegamedll.rc(10) : warning C4627: #include «windows.h»: пропущен при поиске использования предкомпилированного заголовка

                                  1>d:gameselectronic artscrytekcrysismodscrysismodcodegamedll.rc(195) : fatal error C1010: непредвиденный конец файла во время поиска предкомпилированного заголовка. Возможно, вы забыли добавить директиву «#include «StdAfx.h»» в источник.

                                  ——————————————————————-
                                  Сам уменьшил число ошибок до одной, этой:

                                  1>d:gameselectronic artscrytekcrysismodscrysismodcodegamedll.rc(195) : fatal error C1010: непредвиденный конец файла во время поиска предкомпилированного заголовка. Возможно, вы забыли добавить директиву «#include «StdAfx.h»» в источник.

                                  «Как лекарство не достигает своей цели, если доза слишком велика, так и порицание и критика — когда они переходят меру справедливости.»Артур Шопенгауэр
                                  «Самый длинный путь начинается с одного шага, а не поворота ключа в замке зажигания.»Эдвард Эбби

                                  Это сообщение было отредактировано 1 раз(а), последнее редактирование в «DCamer» (23 Сентябрь 2010, 00:37)


                                  Вообще я советую скачать 2005 версию компилятора. Crysis под неё сделан. Ну а так попробуй добавить включение:

                                  #include «StdAfx.h»

                                  в заголовок


                                  Чёрт. Это я случайно поставил на GameDll.rc «Компилятор C/C++». :)

                                  «Как лекарство не достигает своей цели, если доза слишком велика, так и порицание и критика — когда они переходят меру справедливости.»Артур Шопенгауэр
                                  «Самый длинный путь начинается с одного шага, а не поворота ключа в замке зажигания.»Эдвард Эбби

                                  Это сообщение было отредактировано 2 раз(а), последнее редактирование в «DCamer» (23 Сентябрь 2010, 01:07)


                                  Вот такая ошибка:

                                  C:Program FilesMicrosoft Visual Studio 8VCincludeintrin.h(912) : error C2733: second C linkage of overloaded function ‘_interlockedbittestandset’ not allowed
                                  C:Program FilesMicrosoft Visual Studio 8VCincludeintrin.h(912) : see declaration of ‘_interlockedbittestandset’

                                  C:Program FilesMicrosoft Visual Studio8VCincludeintrin.h(913) : error C2733: second C linkage of overloaded function ‘_interlockedbittestandreset’ not allowed
                                  C:Program FilesMicrosoft Visual Studio 8VCincludeintrin.h(913) : see declaration of ‘_interlockedbittestandreset’

                                  #RaM Team#

                                  Это сообщение было отредактировано 1 раз(а), последнее редактирование в «Medvedkoo» (5 Ноябрь 2010, 17:56)


                                  Какая версия VS — 2005 или 2008 ?

                                  При установке должно быть написано 2005. У тебя не установлены все файлы, в частности intrin.h отсутствует.


                                  У тебя не установлены все файлы, в частности intrin.h отсутствует.

                                  8| Ошибка указывает на строки в этом файле, значит файл на месте.

                                  «Как лекарство не достигает своей цели, если доза слишком велика, так и порицание и критика — когда они переходят меру справедливости.»Артур Шопенгауэр
                                  «Самый длинный путь начинается с одного шага, а не поворота ключа в замке зажигания.»Эдвард Эбби


                                  Ребят, переставьте у себя там VS на Pro Edition и всё будет пучком ;)


                                  Огромное спасибо Alex и DCamer за то что мучались со мной в течение двух часов.
                                  Проблема решилась установкой VS 2005 Pro.
                                  Еще раз огромное спасибо.

                                  #RaM Team#


                                  На здоровье :)

                                  Проблема решилась установкой VS 2005 Pro.

                                  Всё таки значит версия Pro идеальна для компиляции. Пожалуй, надо обновить тему.


                                  Не надо, также хороша компиляци на VS 2008 Express Edititon. :)

                                  «Как лекарство не достигает своей цели, если доза слишком велика, так и порицание и критика — когда они переходят меру справедливости.»Артур Шопенгауэр
                                  «Самый длинный путь начинается с одного шага, а не поворота ключа в замке зажигания.»Эдвард Эбби


                                  Не надо, также хороша компиляци на VS 2008 Express Edititon. :)

                                  Кому то хорошо раздеваться полностью чтобы пописать , однако это не есть оптимальное решение.

                                  Edit: BASKA
                                  Остроумен шалун :D
                                  У меня стоит Визуал Студия 2005 и мне хватает.

                                  До моих лет доживете, писать вообще не будете ^^


                                  первый блин, комом

                                  2008Pro

                                  1>LINK : fatal error LNK1000: Internal error during IncrBuildImage
                                  1> Version 9.00.21022.08
                                  где вы нарыли 2005 ?

                                  смог найти только 2008 и 2010


                                  1>LINK : fatal error LNK1000: Internal error during IncrBuildImage
                                  1> Version 9.00.21022.08

                                  Такая ошибка компоновщика встречается в Pro-версии MSVC++ 2008. Для исправления необходимо скачать и установите исправление отсюда, либо исправить порядок #include в своих заголовочных файлах, так, чтобы в начале шли стандартные заголовки, а после них собственные заголовочные файлы.

                                  «Как лекарство не достигает своей цели, если доза слишком велика, так и порицание и критика — когда они переходят меру справедливости.»Артур Шопенгауэр
                                  «Самый длинный путь начинается с одного шага, а не поворота ключа в замке зажигания.»Эдвард Эбби


                                  Спасибки, пошел курить инфо )


                                  Первый пост читай. Написано тебе Visual Studio 2005 Pro.


                                  Написано тебе Visual Studio 2005 Pro.

                                  Ну, и что? У меня 2008 и всё нормально теперь компилируется, ну… кроме x64. :)

                                  «Как лекарство не достигает своей цели, если доза слишком велика, так и порицание и критика — когда они переходят меру справедливости.»Артур Шопенгауэр
                                  «Самый длинный путь начинается с одного шага, а не поворота ключа в замке зажигания.»Эдвард Эбби


                                  Ага, вот тебе и что. Какой толк от мода, если в него не на каждой системе поиграешь?

                                  В 2005, на которой создавался движок, всё работает как надо и ничего не приходится выдумывать.


                                  Ага, вот тебе и что. Какой толк от мода

                                  Так он-то не компилирует, потому, что я круто порезанную версию качал. :) А найти 2005-й, так же сложно, как и найти иголку в стоге сена, я искал, так найти и не смог.

                                  «Как лекарство не достигает своей цели, если доза слишком велика, так и порицание и критика — когда они переходят меру справедливости.»Артур Шопенгауэр
                                  «Самый длинный путь начинается с одного шага, а не поворота ключа в замке зажигания.»Эдвард Эбби


                                  description title ms.date f1_keywords helpviewer_keywords ms.assetid

                                  Learn more about: Compiler Error C2220

                                  Compiler Error C2220

                                  11/04/2016

                                  C2220

                                  C2220

                                  d610802c-64d7-40ad-a2a6-0ed0b6815a6c

                                  Compiler Error C2220

                                  warning treated as error — no object file generated

                                  /WX tells the compiler to treat all warnings as errors. Because an error occurred, no object or executable file was generated.

                                  This error only appears when the /WX flag is set and a warning occurs during compilation. To fix this error, you must eliminate every warning in your project.

                                  To fix, use one of the following techniques

                                  • Fix the problems that cause warnings in your project.

                                  • Compile at a lower warning level—for example, use /W3 instead of /W4.

                                  • Use a warning pragma to disable or suppress a specific warning.

                                  • Don’t use /WX to compile.

                                • Предупреждение лексических ошибок кратко
                                • Предупреждение грамматических ошибок морфологического порядка
                                • Предупреждение во время сохранения произошла ошибка автокад
                                • Предупреждение во время сохранения произошла ошибка autocad
                                • Предупреждение execve ошибка формата выполняемого файла