进程外服务器为长文件名,注册的时候变成了8.3格式,导致和appid中记录的长文件名不匹配,以至dcomcnfg给appid设置的访问许可被旁路,原因是
atl中如下代码
TCHAR szModule[_MAX_PATH];
GetModuleFileName(pM->m_hInst, szModule, _MAX_PATH);
// Convert to short path to work around bug in NT4's CreateProcess
TCHAR szModuleShort[_MAX_PATH];
GetShortPathName(szModule, szModuleShort, _MAX_PATH);
LPOLESTR pszModule = T2OLE(szModuleShort);
解决的办法是将appid中的文件名变成8.3格式的,在注册脚本中
进程外服务器长文件名注册成8.3格式,与appid中长文件名不匹配,导致dcomcnfg给appid设置的访问许可被旁路。文中给出了atl中的相关代码,解决办法是将appid中的文件名变成8.3格式,在注册脚本中操作。
1054

被折叠的 条评论
为什么被折叠?



