0

私はドライバー開発の初心者です。これは私のコードです:

#include <ndis.h>
#include <fwpmk.h>
#include <fwpvi.h>
#include <fwpsk.h>
#include <fstream.h>
#pragma comment(lib, "libcpmtd.lib")

extern "C" {

    NTSTATUS DriverEntry(
        _In_ struct _DRIVER_OBJECT *DriverObject,
        _In_ PUNICODE_STRING       RegistryPath
    )
    {
        ofstream s("D:\\somefile.txt");
        s << "driver initialized.";
        return 0;
    }
}

次のエラーのリストが生成されます。

Severity    Code    Description Project File    Line    Suppression State
Error   LNK2019 unresolved external symbol "public: virtual __thiscall ios::~ios(void)" (??1ios@@UAE@XZ) referenced in function "public: void __thiscall ofstream::`vbase destructor'(void)" (??_Dofstream@@QAEXXZ) KMDF Driver1    D:\Projects\C++\KMDF Driver1\KMDF Driver1\Source.obj    1   
Error   LNK2019 unresolved external symbol "public: class ostream & __thiscall ostream::operator<<(char const *)" (??6ostream@@QAEAAV0@PBD@Z) referenced in function _DriverEntry@8 KMDF Driver1    D:\Projects\C++\KMDF Driver1\KMDF Driver1\Source.obj    1   
Error   LNK2019 unresolved external symbol "public: __thiscall ofstream::ofstream(char const *,int,int)" (??0ofstream@@QAE@PBDHH@Z) referenced in function _DriverEntry@8   KMDF Driver1    D:\Projects\C++\KMDF Driver1\KMDF Driver1\Source.obj    1   
Error   LNK2019 unresolved external symbol "public: virtual __thiscall ofstream::~ofstream(void)" (??1ofstream@@UAE@XZ) referenced in function "public: void __thiscall ofstream::`vbase destructor'(void)" (??_Dofstream@@QAEXXZ)  KMDF Driver1    D:\Projects\C++\KMDF Driver1\KMDF Driver1\Source.obj    1   
Error   LNK2001 unresolved external symbol "public: static int const filebuf::openprot" (?openprot@filebuf@@2HB)    KMDF Driver1    D:\Projects\C++\KMDF Driver1\KMDF Driver1\Source.obj    1   
Error   LNK1120 5 unresolved externals  KMDF Driver1    D:\Projects\C++\KMDF Driver1\Debug\KMDFDriver1.sys  1   
4

1 に答える 1

1

このシンボル (ios、ofstream) - msvcrt.dll から (または静的 libc を使用する場合でも - たとえば、kernel32.dll からの依存関係があります)、カーネル モードでは使用できません。「ostream s」を削除する必要があります-ログにはDbgPrintまたはZwCreateFile/ZwWriteFileを使用してください

于 2016-07-09T08:41:17.923 に答える