double をリトルエンディアンの 16 進文字列に変換するか、特定の型の long に直接変換しようとしています (以下を参照)。
以前は、定義済みのリトル エンディアンの 16 進文字列を次のように long に変換していました。
string hcommand = "01AC";
char * p;
long n = strtol(hcommand.c_str(), &p, 16);
これは希望どおりに機能しました。
現在、double をリトル エンディアン (最下位バイトが最初) 形式の 16 進数文字列に変換するか (上記のコードの hcommand を置き換える)、または double から同じ型の long に直接変換しようとしています。
これを試してみましたが、上記と同じように処理されません。
double myDouble = 44033;
long hcommand = (long)_byteswap_ulong((int)myDouble);
ありがとうございました。