2012-03-16 2 views
-1

Я пишу код в/O шаблоне Kit Driver I следующим образом:Какие шаги я могу предпринять, чтобы удалить ошибку в моем коде?

#include <IOKit/IOService.h> 
class com_osxkernel_driver_IOKitTest : public IOService 
{ 
    OSDeclareDefaultStructors(com_osxkernel_driver_IOKitTest) 
    public: 
     virtual bool init (OSDictionary* dictionary = NULL); 
     virtual void free (void); 
     virtual IOService*  probe (IOService* provider, SInt32* score); 
     virtual bool start (IOService* provider); 
     virtual void stop (IOService* provider); 
}; 
#include "IOKitTest.h" 
#include <IOKit/IOLib.h> 
#define super IOService 
OSDefineMetaClassAndStructors(com_osxkernel_driver_IOKitTest, IOService) 
bool com_osxkernel_driver_IOKitTest::init (OSDictionary* dict) 
{ 
    bool res = super::init(dict); 
    IOLog("IOKitTest::init\n"); 
    return res; 
} 
void com_osxkernel_driver_IOKitTest::free(void) 
{ 
    IOLog("IOKitTest::free\n"); 
    super::free(); 
} 
IOService* com_osxkernel_driver_IOKitTest::probe (IOService* provider, SInt32* score) 
{ 
    IOService *res = super::probe(provider, score); 
    IOLog("IOKitTest::probe\n"); 
    return res; 
} 
bool com_osxkernel_driver_IOKitTest::start (IOService *provider) 
{ 
    bool res = super::start(provider); 
    IOLog("IOKitTest::start\n"); 
    return res; 
} 
void com_osxkernel_driver_IOKitTest::stop (IOService *provider) 
{ 
    IOLog("IOKitTest::stop\n"); 
    super::stop(provider); 
} 

Когда я строй этого кода, я получаю четыре ошибки:

  1. Ожидаемого тела функции после функции описателя
  2. stray '\357' in program
  3. stray '\277' in program
  4. stray '\274' in program

Вы видите ошибку?

+0

Вам необходимо улучшить форматирование вашего вопроса, оно не читается на данный момент. –

+0

Спасибо Chriatofer Eliasson – kumar

+0

@MedetiNaveenKumar, если ответ решил вашу проблему, пожалуйста, убедитесь, что вы пометили его как принято. Если это не так, вам нужно предоставить дополнительную информацию. Это касается всех ваших вопросов. – pmdj

ответ

10

Вы видите ошибку?

Нет. Но компилятор может. И Xcode покажет его вам.

я вставил свой код в новый проект и сделал его компиляции:

enter image description here

Все три паразитных символов в одной и той же части кода.
Если произошла ошибка stray '\something', у вас есть символ в коде, который нельзя скомпилировать, и вы обычно не можете их видеть. Они часто приходят из копии и вставки, которая пошла не так.

Просто удалите строку с ошибкой и запишите ее снова. Не копируйте и не вставляйте или ничего.

Я взял эту часть кода и открыл ее в шестнадцатеричном редакторе. Таким образом, вы можете видеть, откуда берутся эти ошибки.

enter image description here

+1

(+1) ++ Это самый краткий и тщательный ответ, который я видел в течение длительного времени. Отлично сработано. – Dave

+0

Спасибо, Маттиас Баух. Приведенная выше информация очень полезна для меня. – kumar

+2

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

0

Для всех, кто использует КЕЙТ (KDE Advanced Text Editor), я был в состоянии исправить подобные «паразитные ошибки», открыв файлы вызывают ошибку и Непроверку «Добавить Byte Order Mark (BOM) », который можно найти в меню« Инструменты ». После того, как вы снимете этот параметр, файл не будет изменен, поэтому вам нужно будет сохранить файл (Ctrl + S). При повторной компиляции ошибка исчезнет.