大局钩子字符串共享
全局钩子字符串共享
#pragma data_seg("Share")
wchar_t title[100] = {0};
#pragma data_seg()
#pragma comment (linker,"-section:Share,rws")
在CApp::InitInstance()
中
wcscpy(title,L“abcd”);
钩子函数可以正常访问title的字符串。
用:
wstring str = L"abcd";
wcscpy(title,str.c_str());
钩子函数也可以正常访问。
但是读取配置文件的时候,
CString strTemp;
GetPrivateProfileString(L"test",L"flag",L"",strTemp.GetBuffer(MAX_PATH),MAX_PATH,fileName);
wcscpy(title,strTemp.getBuffer());
全局钩子读到的字符串是空!!!!
PS:
配置文件的读取没错,读到的信息也是对的,只是断点进去的时候正确,但是跟到钩子函数中的时候却为空。
怎么才能在钩子函数中用InitInstance()读取配置文件的方式共享字符串?
------解决方案--------------------
你fileName配置正确么?
有没有用相对路径?
钩子中使用GetPrivateProfileString之后用GetLastError去查询下错误看看
------解决方案--------------------
配置文件,你用绝对路径。。
------解决方案--------------------
楼上说的对,配置文件,你用绝对路径。。
------解决方案--------------------
“但是跟到钩子函数中的时候却为空”
不是 同一个 进程吧 ?
------解决方案--------------------
我的意思就是要用绝对路径。不过楼主一直说没问题。偶也没有对策了。
#pragma data_seg("Share")
wchar_t title[100] = {0};
#pragma data_seg()
#pragma comment (linker,"-section:Share,rws")
在CApp::InitInstance()
中
wcscpy(title,L“abcd”);
钩子函数可以正常访问title的字符串。
用:
wstring str = L"abcd";
wcscpy(title,str.c_str());
钩子函数也可以正常访问。
但是读取配置文件的时候,
CString strTemp;
GetPrivateProfileString(L"test",L"flag",L"",strTemp.GetBuffer(MAX_PATH),MAX_PATH,fileName);
wcscpy(title,strTemp.getBuffer());
全局钩子读到的字符串是空!!!!
PS:
配置文件的读取没错,读到的信息也是对的,只是断点进去的时候正确,但是跟到钩子函数中的时候却为空。
怎么才能在钩子函数中用InitInstance()读取配置文件的方式共享字符串?
------解决方案--------------------
你fileName配置正确么?
有没有用相对路径?
钩子中使用GetPrivateProfileString之后用GetLastError去查询下错误看看
------解决方案--------------------
配置文件,你用绝对路径。。
------解决方案--------------------
楼上说的对,配置文件,你用绝对路径。。
------解决方案--------------------
“但是跟到钩子函数中的时候却为空”
不是 同一个 进程吧 ?
------解决方案--------------------
我的意思就是要用绝对路径。不过楼主一直说没问题。偶也没有对策了。