● ldstr.dll

初期化処理の呼び出し

floatex_ldstr_ldtoafloatex_ldstr_ldtoa_ffloatex_ldstr_strtold は関数内部で floatex_ldstr_init を呼び出しているため、floatex_ldstr_init を事前に呼び出しておかなくても処理は成功します。

例.

#include <stdio.h>
#include "floatex.h"

int     main(void)
{
    FLOATEX         a,b;
    unsigned int    oldcw;
    char            buf[32];

    oldcw = floatex_storecw();
    floatex_loadcw(FEX_MCW_EM | FEX_PC_64 | FEX_RC_NEAR);

    floatex_doubleto(
        12345.0,
        a);

    floatex_doubleto(
        67890.0,
        b);

    floatex_add(a,b);

    floatex_ldstr_ldtoa(a,buf); /* a の内容を文字列に変換し表示する */
    printf("%s\n",buf);

    floatex_ldstr_term();
    floatex_loadcw(oldcw);

    return 0;
}

floatex_ldstr_init を省いた場合、DLL を発見できなかった事のエラーや、初期化処理に失敗した事のエラーは、最初に実行された(floatex_ldstr_term 以外の)ldstr系関数のエラーとして出力されます。

初期化が自動で実行されるのなら floatex_ldstr_init は必要無い様にも思えますが、特定の場所だけで初期化を行わせるという用途で、重要な意味を持っています。
簡単なプログラムの場合は floatex_ldstr_init を省いても問題ありませんが、無条件に省略する事は推奨しません。