Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将hwnd类型数据存储到平面文件中,并将其返回到hwnd类型变量中?_C++_Windows_Winforms - Fatal编程技术网

C++ 如何将hwnd类型数据存储到平面文件中,并将其返回到hwnd类型变量中?

C++ 如何将hwnd类型数据存储到平面文件中,并将其返回到hwnd类型变量中?,c++,windows,winforms,C++,Windows,Winforms,如何将hwnd类型数据存储和检索到平面文件中,并将其返回到hwnd类型变量中 我现写信如下: HWND g_hWndApp, g_hWndApp1; ofstream myfile; myfile.open ("D:\\sri.txt"); myfile << g_hWndApp; myfile.close(); int nCmdShow = 6; ShowWindow(g_hWndApp,nCmdShow); 但是g_-hWndApp和g_-hWndApp1的值不一样,我哪里出错

如何将hwnd类型数据存储和检索到平面文件中,并将其返回到hwnd类型变量中

我现写信如下:

HWND g_hWndApp, g_hWndApp1;
ofstream myfile;
myfile.open ("D:\\sri.txt");
myfile << g_hWndApp;
myfile.close();
int nCmdShow = 6;
ShowWindow(g_hWndApp,nCmdShow);
但是
g_-hWndApp
g_-hWndApp1
的值不一样,我哪里出错了


注意:我使用kinect根据Z深度控制窗口的最大化和最小化,因此我需要知道最小化的窗口,以便在特定条件下最大化相同的窗口。

您正在将指向字符串的指针转换为整数。这显然行不通

只需将文件中的整数直接读入变量:

int hwnd;
myReadFile >> hwnd;
g_hWndApp1 = (HWND)hwnd;

请注意,当您关闭程序并重新启动程序并重新创建窗口时,窗口的
HWND
。除非您正在与其他程序或其他东西通信,否则将其存储在文件中是毫无意义的。

要存储任意二进制数据,通常需要执行以下操作:

ofstream myfile; 
myfile.open ("D:\\sri.txt", std::ios_base::binary); 
myfile.write(&g_hWndApp, sizeof(g_hWndApp));


每次创建窗口时,它都会得到一个新的HWND。它将永远不会像以前一样。为什么要将HWND存储在文件中?您的最终目标是什么?HWND只是窗口的一个句柄,它只有在程序关闭之前才有用,所以为什么要将其写入文件?为什么不将输入读入
HWND
,镜像输出操作?我使用kinect根据Z深度控制窗口的最大化和最小化,所以我需要知道哪个窗口被最小化,因此,要在特定条件下最大化该窗口…这并不能解释为什么需要将窗口句柄保存到文件中。我使用kinect根据Z深度控制窗口的最大化和最小化,因此我需要知道哪个窗口被最小化,以便在特定条件下最大化该窗口。。
ofstream myfile; 
myfile.open ("D:\\sri.txt", std::ios_base::binary); 
myfile.write(&g_hWndApp, sizeof(g_hWndApp));
ifstream myReadFile("D:\\sri.txt", ios_base::binary); 
if (myReadFile.is_open()) { 
       myReadFile.read(&g_hWndApp1, sizeof(g_hWndApp1));
}