读书人

回调函数使用全局变量的有关问题

发布时间: 2013-07-04 11:45:33 作者: rapoo

回调函数使用全局变量的问题
在下前几日写记事本程序的时候因为某的功能的需要我定义了一个全局变量LPSTR filepath(用于保存打开文件的路径),在我的回调函数的某些地方会对它进行赋值操作,在一次消息处理过程后我用消息框显示了它的信息,确实成功的赋值了,但在处理下一个消息时再显示它的内容时发现变成了一个问号,
代码结构大概是这样的:
LPSTR filepath=NULL;
class box
{
public:
static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
static bool function1();
static bool function2();
}
请问各位前辈如何能使得这里的WndProc对filepath赋值后filepath能保持这个值,从而能在下一次操作的时候能根据它的值来做一些判定而不至于像上面的变成‘?’ 全局变量 callback 类 函数
[解决办法]
回调函数跟普通函数没什么两样,你注意到这个变量时指针了吗?
[解决办法]
要用strcpy()而不是用 = 来赋值。
[解决办法]
改用char filepath[MAX_PATH]; 或者TCHAR什么的,保存完整的字符串,而不是只保存个指针什么的

读书人网 >C++

热点推荐