● デバッグ・ヒント
ldstr の初期化
ldstr 系関数を使用している場合は、まず exe の場所に ldstr.dll があるかを確認してください。また、可能ならば floatex_ldstr_init の追加とエラーチェックを行ってください。
数値を文字列に変換する場合、出力先バッファ内に文字列の初期値をセットしておく事で、エラーチェックなしに ldstr.dll の存在を確認する事ができます。
#include <stdio.h>
#include "floatex.h"
void __cdecl main(void)
{
unsigned int oldcw;
char buf[32] = "ldstr.dll not found.";
oldcw = floatex_storecw();
floatex_loadcw(FEX_PC_64 | FEX_RC_NEAR | FEX_MCW_EM);
/*
初期化に成功すれば数値を表示する。
失敗した場合は "ldstr.dll not found." を表示する。
*/
floatex_ldstr_ldtoa(fex_const_pi,buf);
printf("%s\n",buf);
floatex_ldstr_term();
floatex_loadcw(oldcw);
}
この方法は簡単なので、テストプログラムやデバッグ等で使用する時には便利です(ただし、エラーでも処理が進んでしまう事に注意)。ldstr 系関数は、初期化が行われていない状態で呼び出された場合は、先に初期化処理を行います。その初期化処理に失敗した場合は関数を中断しますので、出力先のバッファは内容が変更されません。