c++ builder2007程序模块间传递数据的问题

来源:百度知道 编辑:UC知道 时间:2024/06/30 11:30:10
我用c++ builder2007编写界面程序(用C编,因为是嵌入式软件)时遇到了这样的问题,有两个页面A和B,希望在A中点击某个按钮后存储一定区域的屏幕数据到一个数组Z,随后跳转到页面B,再将Z中数据打在B上,此时编译没有错,但运行时总是报错,但如果我只是在页面A中存储屏幕数据,随后仍在A中显示却不会出错,为何?页面A、B分属不同模块,是否两个模块之间传递数据会有问题?请指教。
附带数据存储函数:
/*****************************************************************************
* 功能:屏幕缓冲备份区暂存或恢复数据
* 入口参数:屏幕上需保存或恢复区域的起始位置和大小:x0, y0, height, wight,
保存或恢复数据 n:0-保存 1-恢复
* 出口参数:无
****************************************************************************/
void ScreenBufferSave(uint16 x0, uint16 y0, uint16 height, uint16 wight, uint8 n)
{
uint16 i, j;
if(n == 0)
{
for (i = x0; i <= x0+wight; i++)
for (j = y0; j <= y0+height; j++)
screen_buffer_save[i][j] = screen_buffer[i][j];
}
else
{
for (i = x0; i <= x0+wight; i++)
for (j = y0; j <= y0+height; j++)
screen_buffer[i][j] = screen_buffer_save[i][j];
}
}

先定义一个你想传那个数据类型的指针,然后用指针引用到另一个panle,就可以了

设置断点跟踪下问题出在哪里不就行了
2个进程间通信的方式有很多种

你一定是传递的数据有问题,或者地址映射错误。
使用消息或剪贴板吧
使用消息的话,传递的指针参数系统会自动切换地址映射的

在不行,使用 进程地址映射,B进程访问A进程的地址空间,直接读取数据好了。