Код C ++ компилируется в CentOS g ++, но не в Visual Studio 2008 - PullRequest
0 голосов
/ 29 декабря 2011

У меня проблема: мои коды хорошо работают в CentOS g ++, но когда я компилирую их в Visual Studio 2008, Visual Studio сообщает мне об ошибках, как показано ниже:

1.c: \ programфайлы (x86) \ microsoft visual studio 9.0 \ vc \ include \ codeanalysis \ sourceannotations.h (19): ошибка C2144: синтаксическая ошибка: '__w64 unsigned int' должно предшествовать '}'

2.errorC2143: синтаксическая ошибка: отсутствует «}» перед «пространством имен».

Кодировка моего файла - UTF-8.Если я изменю их в Unicode all, я изменю некоторый файл ошибок в Unicode, в нем все еще есть ошибки, как указано выше.

ниже приведены некоторые коды:

#ifndef ENRC_CODE_DEFS_H
#define ENRC_CODE_DEFS_H

enum ENReturnCode
{
ENRC_SUCCESS = 0,
ENRC_FAILED,
ENRC_NODATA,
ENRC_CONFIG_NOT_AVAILABLE,
ENRC_INVALID_SUBSCRIBE_ID,
ENRC_INVALID_SUBSCRIBE_CONDITION,
ENRC_INVALID_SUBSCRIBER,
ENRC_INVALID_PARAMETER,
ENRC_THREAD_RUNNING,
ENRC_SUBSCRIBE_LIST_EMPTY,
ENRC_OUT_OF_MEMORY     // 10
}

e:\my_code\cppcommon\include\errordefs.h(5) : error C2143: syntax error : missing ';' before 'enum [tag]'

следующий:

#ifndef EN_SMS_SRC_TAO2CPP_H_        
#define EN_SMS_SRC_TAO2CPP_H_
#include "SystemMonitorMasterServiceC.h"
#include "SystemMonitorSlaveServiceC.h"
#include "CommonDefs.h"
#include "SystemMonitorServiceDataDefs.h"

namespace EN
{
namespace SMS
{
template < typename _Ty, typename _Cy>
inline
void Tao2Cpp_Enum(_Ty taoValue, _Cy &cppValue)
{
   cppValue = (_Cy)taoValue;
}

error C2143: syntax error : missing '}' before 'namespace'

Aмного ошибок, как указано выше.

Спасибо.Я трачу некоторое время, чтобы его было легче читать.

1 Ответ

0 голосов
/ 29 декабря 2011

Вам нужно точка с запятой в объявлении enum:

enum ENReturnCode 
{
...
}; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...