プログラム A (FORTRAN) とプログラム B (C++) の 2 つのプログラムがあります。それらは互いにパイプを介して接続されています。プログラム B は、プログラム A のコンソールからバイナリ データを直接読み取る必要がありますが、何らかの理由でそれができません。
以下は、プログラム B の読み取り部分です。
BOOL bSuccess = FALSE;
LPBYTE File_Data;
DWORD dwFileSize;
wFileSize = GetFileSize(V_hChildStd_OUT_Rd, NULL);
File_Data = new BYTE[dwFileSize+1];
bSuccess = ReadFile( V_hChildStd_OUT_Rd, File_Data, dwFileSize, &dwRead, NULL);
delete [] File_Data;
注: V_hChildStd_OUT_Rd は、プログラム A の出力へのハンドルです。
1、2、または 3 桁の整数 (たとえば、1、10、または 100) を渡すと、プログラムが動作し、File_Data 配列で数値を取得できます。ただし、より大きな整数値とすべての倍精度数の場合、File_Data は意味のある値を提供しません。すべての数値について、私の bSuccess は TRUE であることに注意してください! つまり、ファイルを読み取ることができます。問題を解決するのを手伝ってくれませんか。ありがとう!