LNK2019 неразрешенный внешний символ NtOpenFile

Я столкнулся с ошибкой компоновщика в моем коде. Я пытаюсь скомпилировать с помощью командной строки Visual Studio (2010) в Win-7 X64 bit m / c. Ошибка, которую я вижу, приведена ниже.

dust2.obj

dust2.obj: error LNK2019: неразрешенный внешний символ _NtOpenFile @ 24 указано в функции _main

dust2.obj: ошибка LNK2019: неразрешенный внешний символ _RtlAnsiStringToUnicodeStr ing @ 12 упоминается в функции _main

dust2.obj: error LNK2019: неразрешенный внешний символ _RtlInitAnsiString @ 8 ссылка включен в функцию _main

dust2.exe: фатальная ошибка LNK1120: 3 неразрешенных внешних объекта

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

   #include 
   #include 
   #include 

   using namespace std;

   int main()
   {
        NTSTATUS Status;
        OBJECT_ATTRIBUTES Obja;
        HANDLE SourceFile;
        PUNICODE_STRING PathName=0;
        PANSI_STRING p_path=0;
        const char* ccp_path = "D:\\txt.txt";
        RtlInitAnsiString( p_path,ccp_path );
        RtlAnsiStringToUnicodeString( PathName, p_path, true );
        IO_STATUS_BLOCK IoStatusBlock;
        wprintf(L"%s", PathName->Buffer);
        InitializeObjectAttributes(
            &Obja,
            PathName,
            OBJ_CASE_INSENSITIVE,
            NULL,
            NULL
        );
        Status = NtOpenFile(
                     &SourceFile,
                     FILE_LIST_DIRECTORY | FILE_READ_EA | FILE_READ_ATTRIBUTES,
                     &Obja,
                     &IoStatusBlock,
                     FILE_SHARE_READ | FILE_SHARE_WRITE,
                     FILE_DIRECTORY_FILE | FILE_OPEN_FOR_BACKUP_INTENT | FILE_OPEN_REPARSE_POINT
        );  
        if(SourceFile == INVALID_HANDLE_VALUE){
            printf("\nError: Could not open file\n");
            return 0;
        }
        cout<

В другом сообщении на этом форуме было упомянуто решение такого рода проблем. включить #pragma .

Я попробовал это решение, добавив #pragma как это

#pragma comment(lib, "ntdll")

, но при компиляции я вижу еще одну ошибку, которая говорит: «ССЫЛКА: фатальная ошибка LNK1104: невозможно открыть файл 'ntdll.lib '".

Буду очень признателен за вашу помощь в решении этой проблемы. Спасибо ..

6
задан Community 23 May 2017 в 12:13
поделиться