none
求助:VC++编写的OCX控件,在64位WIN7下,IE9,通过这个控件保存到磁盘的文件,别的程序都看不见。 RRS feed

  • 常规讨论

  • 我用VC++编写了一个OCX控件,控件有保存文件到磁盘的功能。在64位的WIN7+IE9测试的时候,发现控件虽然报告成功将文件存储到磁盘上,但是我打开资源管理器到保存目录上看,却啥也没有。

    可是在控件的打开文件按对话框里面却又可以看得到保存的文件。

     

    之前有人说64位和32为系统有不同的文件视图,可是为什么别的程序不会有我这个问题呢?另外我先在资源管理器里面按鼠标右键,选择新建一个文本文件。然后到控件的打开文件对话框里面,能看到这个新建的文本文件,说明路径是绝对没有错的。可是文件保存到什么地方了呢?

     

    注:IE9运行的是32位版本,另外我编写的那个ocx控件也是32位的。只有WIN7系统是64位。


    da jia hao!
    2011年5月11日 2:34

全部回复

  • 补充:选择以管理员身份启动IE,就一切正常。

    请问有没有办法解决,因为一般用户是不懂得如果以管理员身份启动IE的。


    da jia hao!
    2011年5月11日 2:40
  • 以管理员身份登录应该就是让系统与程序兼容吧,  这个瘟起,  很难有办法

    你的OCX是在什么系统下开发的? 32位XP? 在Win7下开发试试


    相信命运
    2011年5月11日 13:23
    版主
  • 用IEGetWriteableFolderPath获得IE有写入权限的路径。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    2011年5月12日 2:04
    版主
  • 如果专家们早一点提及“保护模式”这四个字,我就早就明白为什么了!

    原来win7的ie工作在保护模式下,此时控件的对系统资源的存取其实都由系统做了一个映射,对用户来说好像是保存在“文档”目录下,但实际上是保存到其他地方的。

     

    现在虽然明白了原因,却没有办法解决。因为文件保存下来之后,对于用户来说的确就是找不到。虽然作为开发者,我自己知道文件是保存到别的地方了,但这对于最终用户来说没有任何意义,他就是发现保存下来的文件没了!


    da jia hao!
    2011年5月17日 8:47
  • 保护模式是个好东西(对于系统使用者来讲确实不错), 它阻拦了不少程序的随意操作.

    类似的还有文件虚拟化, 注册表虚拟化, 针对那些不兼容或者没权限的程序做了不少的限制 !!!!

     

    但是 !!

     

    对于从winXP一直走过来的开发者来讲, 确实多了好多麻烦...

    不过还好, 至少让我们知道了自己以前写东西的时候有多么的随便, 行为有多么的不检点, 文件想写就写, 想删就删..

     


    如果下辈子投胎能选国籍的话,老子绝对不会选中国!
    2011年5月17日 14:49