VS2005 和 VS2008 问题

问题描述

同样是一段windowsshell扩展程序,在vs2008下运行就没问题,在vs2005环境下运行会出现如下问题errorC2787:'IExtractIconW':noGUIDhasbeenassociatedwiththisobjecterrorC2440:'initializing':cannotconvertfrom'DWORD_PTR'to'constIID*'errorC2440:'initializing':cannotconvertfrom'ATL::_ATL_CREATORARGFUNC(__stdcall*)'to'DWORD_PTR'我想在vs2005下运行成功,请问该如何解决,更新sdk么(如何更新)?还是另有高招?

解决方案

解决方案二:
可能是使用的netframework版本的原因
解决方案三:
关键的问题是以下头文件没有包含正确#include"shlobj.h"#include"comdef.h"#include<shlguid.h>下面是收集的一些问题解决过程:1、HaveyoudownloadedtheLatestPlatfromSDK?Ifso,areyourvcdirspointingtotheproperincludedirs,eg:shlguid.hisgettingpickedupfromtheSDKincludeandnotthevc98include.Yousetthoseinthetools-Options->directories->includedirsforVC2、Therearetwo<comdef.h>headerfilesinVC.NET,oneinVc7/includeandtheotherinVc7/PlatformSDK/include.Theformersplitsoffthesmartpointertypedefsintocomdefsp.h,anditdoesn'tincludeIContextMenu.Thelatterdoes.Youcantryto#includethePlatformSDKheaderdirectly,changeyourINCLUDEpathorder,orsupplythemissingtypedefyourself,e.g.struct__declspec(uuid("000214e4-0000-0000-c000-000000000046"))IContextMenu;_COM_SMARTPTR_TYPEDEF(IContextMenu,__uuidof(IContextMenu));3、怎样找到Interface的GUID?我在注册表HKCRInterface下可以找到形式为{aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee}的键,如果其下有默认项="Interface",则说明这个键就是该Interface的GUID。有没有其它方法?(1)VC6commonTools下有个OLE/COMObjectViewer很方便,但在VC2005下就没找到这个工具(2)PlatformSDKincludecomdef.h中也有GUID的定义4、__uuidof它是C++运算符[总结]如上所述,如果把PlatformSDK/include放在前面仍然不可以的话,就下载新的SDK,把include目录包含进去就好了。个人感觉手动添加这些uuid值如,struct__declspec(uuid("000214e4-0000-0000-c000-000000000046"))IContextMenu;_COM_SMARTPTR_TYPEDEF(IContextMenu,__uuidof(IContextMenu));过了这个村,还会有下个店,还不如直接更新一下SDK来得直接保险。
解决方案四:
lz很厉害啊,我来蹭分了。不过一般downgrade可能都会有问题。
解决方案五:
可能是版本的原因,调试一下试试咯,。
解决方案六:
可能是版本的原因,在VS2005打上netframework3.0补丁试试
解决方案七:
VS2005和VS2008的版本不一样,相应的库也就有区别另外也有可能是netframework的问题,我用的是3.5版的,再不行再升级SP1试试
解决方案八:
引用2楼abc86269456的回复:

关键的问题是以下头文件没有包含正确#include"shlobj.h"#include"comdef.h"#include<shlguid.h>下面是收集的一些问题解决过程:1、HaveyoudownloadedtheLatestPlatfromSDK?Ifso,areyourvcdirspointingtoth……

谢谢分享~
解决方案九:
用的是VS2010,2010好多优化过了,用时没问题
解决方案十:
vs2005我也用不惯~~~
解决方案十一:
VS2005和VS2008的版本不一样,相应的库也就有区别
解决方案十二:

解决方案十三:
我机器安完VS2005后VS2008就安不上了
解决方案十四:
谢谢分享引用2楼abc86269456的回复:

关键的问题是以下头文件没有包含正确#include"shlobj.h"#include"comdef.h"#include<shlguid.h>下面是收集的一些问题解决过程:1、HaveyoudownloadedtheLatestPlatfromSDK?Ifso,areyourvcdirspointingtot……

解决方案十五:
有些函数的参数变了,尤其是vs2008sp1里面,很多类库都升级了
解决方案:
引用4楼dcymfh的回复:

可能是版本的原因,调试一下试试咯,。

版本不同呀
解决方案:
这个我也要多注意,也面临vs2005与vs2008的取舍
解决方案:
该回复于2012-02-11 19:58:31被版主删除

时间: 2024-09-22 10:04:20

VS2005 和 VS2008 问题的相关文章

VS2005打开VS2008项目的2种方法

 vs2008支持.net3.5,而vs2005支持.net2.0,所以使用vs2005打开vs2008的项目,要确定你的项目是.net2.0的,下面介绍二种VS2005打开VS2008项目的方法 方法1:用记事本打开.sln文件,你将看到     代码如下: Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 你把它改成: Microsoft Visual Studio Solutio

关于vs2005、vs2008和vs2010项目互转的总结_实用技巧

有做.net的程序员和朋友曾经问过我,关于vs2005和vs2008.vs2008和vs2010.vs2005和vs2010项目互转的问题,那么关于这个问题有两层含义:一种是通过高版本的编译器打开低版本的项目,进行升级:一种是通过修改Soultion文件和Project文件,可以打开编译.第一种方法,相信大家都可以做到.我主张用第二种方法,这种方法灵活多变,既可以从低版本升级到高版本,又可以从高版本转换到低版本. 那么下面我给大家讲一下,通过vs2005的项目升级到vs2008项目的步骤,下面是

关于VS2005和VS2008的比较

问题描述 本人目前还在用2005搞开发,2008比2005功能好在哪呢? 解决方案 解决方案二:其实差不多,但是2008对css样式和js脚本都有提示,05里面是没有的,还可以设置垂直页面什么的,主体功能差不多解决方案三:从核心看08支持.net3.5.从界面看,08代码自动完成,编辑html,调试javascript功能都更好一些.解决方案四:0我觉得08比05在web方面强多了,.至少搞个表格就i不要那么麻烦人性化一点,.,我的08没有js提示解决方案五:08的页面用到的控件描述是在一个单独

VS2005、vs2008+WinXPDDK+DDKWizard配置驱动开发环境

所需软件下载地址如下(均为有效资源链接,速度都比较可以): vs2005:    http://221.224.22.210/downloadsawyer/VS.Net2005简体中文版.rar winxpddk: http://210.21.117.86/down/ocx/winxpddk.zip DDKWizard : http://ddkwizard.assarbad.net/downloads/ddkwizard_setup.exe                  http://ddk

怎样在VS2005,VS2008下里用SVN的SubWCRev自增修订号 .

  为了使软件版本号的最后一位,即修订号与由svn管理的代码库修订号保持一致并自动更新,可以利用VS2005的生成事件和 svn 中的 subwcrev 程序实现,步骤如下: 工具/原料 Visual Studio 2005 SVN 客户端( TortoiseSVN 或其他 ) 步骤/方法 编写一个模板文件,比如取名为 version_template.h,内容如下 #ifndef _VERSION_H_#define _VERSION_H_ #define VER_MAJOR 1#define

VS2005打开VS2008项目的2种方法(vs2005怎么打开2008)_实用技巧

方法1:用记事本打开.sln文件,你将看到 复制代码 代码如下: Microsoft Visual Studio Solution File, Format Version 10.00# Visual Studio 2008你把它改成:Microsoft Visual Studio Solution File, Format Version 9.00# Visual Studio 2005 即可用2005来打开 方法2: 1. 用记事本打开解决方案文件[解决方案名].sln,然后修改最上面两行为

vs2005无法正常vs2008建的网站

问题描述 四.动手修改VS2008的解决方案文件,以让VS2005打开它<1>用记事本打开解决方案文件"解决方案名.sln",然后修改最上面两行为如下代码:MicrosoftVisualStudioSolutionFile,FormatVersion9.00#VisualStudio2005<2>用记事本打开每个项目文件"项目名.csproj",在<PropertyGroup>节点下移除如下节点:<TargetFramewo

VS2008生成的程序无法在其它电脑上运行,提示系统无法执行指定的程序

经过一番查找,最给力的参考是 http://www.cnblogs.com/visoeclipse/archive/2010/02/27/1674866.html -----------------------以下为转载-------------------------------------------------------------- 首先感谢这位几仁兄的几篇博客: http://hi.baidu.com/fairysky/blog/item/130dda13db7b050a5aaf53

VS2008在结束调试时的假死现象

问题描述 我装的XP系统,同时装有VS2005和VS2008,也有在结束调试时的假死现象,太郁闷了,有谁知道是什么问题啊????????????? 解决方案 解决方案二:up解决方案三:大虾们快来帮帮忙啊!!!!!!!!!!!!!!!!!!!!!!解决方案四:up,我也是一样.郁闷阿.网卡禁掉就好了,可还要访问网络数据库...解决方案五:安装vs2008sp1补丁试试,,我安装的是英文版的,感觉好多了解决方案六:装了sp1也一样.不过英文版没试过.很多人不习惯英文版了解决方案七:关闭宿主进程就好