系统win7 x64,貌似是64位系统的问题,求解。

解决方案 »

  1.   

    http://blog.csdn.net/zhouzuoji/article/details/1865411
      

  2.   

    验证了一下,效果一样。
    例如"C:\Program Files\7-Zip\7zG.exe"的快捷方式,获取出来是"C:\Program Files (x86)\7-Zip\7zG.exe"
      

  3.   

    那就坚持不懈的尝试吧。
    比如 Char -> WChar
      

  4.   

    type
      TLINK_FILE_INFO = record
        Filename: array [0 .. MAX_PATH] of Char;      { 目标文件名 }
        WorkDirectory: array [0 .. MAX_PATH] of Char; { 工作目录或者起始目录 }
        IconLocation: array [0 .. MAX_PATH] of Char;  { 图标文件名 }
        IconIndex: Integer;                           { 图标索引 } 问题应该在这里!
        Arguments: array [0 .. MAX_PATH] of Char;     { 程序运行的参数 }
        Description: array [0 .. 255] of Char;        { 快捷方式的描述 }
        ItemIDList: PItemIDList;                      { 只供读取使用 }
        RelativePath: array [0 .. 255] of Char;       { 相对目录,只能设置 }
        ShowState: Integer;                           { 运行时的窗口状态 }
        HotKey: Word;                                 { 快捷键 }
      end;
      

  5.   

    结构体里两个Integer类型都应该改:
    IconIndex: Int32;
    ShowState: Int32;
      

  6.   

    我也遇到类似问题win7 64位系统加载出的原始路径从
    C:\Program Files\Debugging Tools for Windows (x64)\windbg.exe
    变为
    +tszOriginPath 0x0031e800 L"C:\\Program Files (x86)\\Debugging Tools for Windows (x64)\\windbg.exe" wchar_t[260]
    Program Files后多了个(x86)
    这个怎么解决
      

  7.   

    不知楼主解决该问题没,本打算用工作目录,拼接程序名,自己创建目标路径后来请教了下他人,发现问题所在了,我使用的是vs2012
    需要修改项目->属性->最顶上配置栏右边修改配置管理器->活动解决方案平台->改为x64(默认的是win32)我修改后,就能正确区分Program Files与Program Files (x86)了