我有兩個程序:程序A(在FORTRAN中)和程序B(在C++中)。他們通過管道相互連接。方案B應直接從程序A的控制檯讀取二進制數據,但由於某種原因,我不能做到這一點:使用ReadFile()函數讀取Windows中的二進制數據
以下是節目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或10或100),程序將工作,我可以在File_Data數組中獲取數字。但是對於較大的整數和所有的雙數,File_Data給出的意義較小。請注意,對於所有數字,我的bSuccess爲TRUE!這意味着它可以讀取文件。 你能幫我解決這個問題嗎?謝謝!
由於事先不知道大小,所以不能在管道上使用'GetFileSize'。 –