现在的位置: 首页 > 综合 > 正文

atl的一个问题

2012年11月10日 ⁄ 综合 ⁄ 共 378字 ⁄ 字号 评论关闭

进程外服务器为长文件名,注册的时候变成了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格式的,在注册脚本中

抱歉!评论已关闭.