none
カーネルモードドライバでの浮動小数点演算の仕方を教えてください RRS feed

  • 質問

  • お世話になります。初めて参加させて頂きます。
    カーネルモードドライバで浮動小数点演算をしたいのですが
    方法がわかりません。
    以下の様に変数の宣言と代入をしたいのですが
    void FCalc(void)
    {
     NTSTATUS status;
     KFLOATING_SAVE FloatSave;
     float floatValue;
     status = KeSaveFloatingPointState(&FloatSave);
     floatValue = 1.1;
     KeRestoreFloatingPointState(&FloatSave);
    }
    errer LNK2001:unresolved external sysmbol_fltused
    errer LNK1120: 1 unresolved externals
    となりエラーとなります。
    KeSaveFloatingPointStateとKeRestoreFloatingPointStateについて
    教えて頂きたいと思います。


    • 移動 Mike Wang (MSCS) 2012年10月2日 12:32 (移動元:Windows デバイスドライバー開発)
    2010年3月5日 0:25

回答

  • 単純にリンクするライブラリの問題だと思います。
    ドライバの sources ファイルに以下の lib のリンク指定を追加すれば、ちゃんとビルドできると思います。

    ----------------------------
    TARGETLIBS= $(DDK_LIB_PATH)\ntoskrnl.lib \
                $(SDK_LIB_PATH)\libcntpr.lib
    ----------------------------

    • 回答としてマーク koridorasu 2010年3月5日 6:14
    • 回答としてマークされていない koridorasu 2010年3月5日 6:15
    • 回答としてマーク koridorasu 2010年3月5日 6:16
    2010年3月5日 1:34

すべての返信

  • 単純にリンクするライブラリの問題だと思います。
    ドライバの sources ファイルに以下の lib のリンク指定を追加すれば、ちゃんとビルドできると思います。

    ----------------------------
    TARGETLIBS= $(DDK_LIB_PATH)\ntoskrnl.lib \
                $(SDK_LIB_PATH)\libcntpr.lib
    ----------------------------

    • 回答としてマーク koridorasu 2010年3月5日 6:14
    • 回答としてマークされていない koridorasu 2010年3月5日 6:15
    • 回答としてマーク koridorasu 2010年3月5日 6:16
    2010年3月5日 1:34
  • ニコチャン大王様

    問題なく実行できました。
    ありがとうございました。
    こんなに早く回答して頂きまして感謝しております。
    2010年3月5日 6:20