我有两个程序:程序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'。 –