-1

I/O Kit Driver テンプレートに次のようにコードを記述します。

#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);
}

このコードをビルドすると、次の 4 つのエラーが発生します。

  1. 関数宣言子の後に期待される関数本体
  2. stray '\357' in program
  3. stray '\277' in program
  4. stray '\274' in program

エラーが表示されますか?

4

2 に答える 2

10

エラーがわかりますか?

いいえ。しかし、コンパイラーはできます。そして、Xcodeがそれを表示します。

私はあなたのコードを新しいプロジェクトに貼り付け、それをコンパイルしました:

ここに画像の説明を入力してください

3つの漂遊文字はすべて、コードの同じ部分にあります。
このようなstray '\something'エラーが発生した場合、コードにコンパイルできない文字が含まれており、通常はそれらを表示できません。それらはしばしば、うまくいかなかったコピーアンドペーストから来ます。

エラーのある行を削除して、もう一度書き込んでください。コピーアンドペーストなどしないでください。

コードのその部分を取得して、16進エディターで開きました。したがって、これらのエラーがどこから来ているかを確認できます。

ここに画像の説明を入力してください

于 2012-03-16T14:08:02.063 に答える
0

KATE (KDE Advanced Text Editor) を使用している場合は、エラーの原因となっているファイルを開き、[ツール] の下にある [バイト オーダー マーク (BOM) の追加] オプションのチェックを外すことで、同様の「浮遊エラー」を修正できました。メニュー。この設定をオフにすると、ファイルは変更されたように見えないため、実際にファイルを保存 (Ctrl+S) する必要があります。再コンパイルすると、エラーはなくなります。

于 2013-06-12T09:12:01.970 に答える