jiangsheng

http://www.csdn.net/develop/author/netauthor/jiangsheng/
随笔 - 142, 评论 - 629, 引用 - 27

导航

关于

 
这下要维护3个BLOG了,faint 其他的地址:

所有的文章版权归原文作者所有,任何人需要转载文章,必须征得原文作者授权。
我的MVP配置

标签

每月存档

最新留言

广告

【第1页/共15页,142条】
首页
前页
1
...
2009年11月10日

image

在消失4个版本之后,类向导终于重返Visual C++。新的功能:搜索现在可以部分匹配而不是从字符串开始匹配。

测试版还是存在一些问题,向导不是总能找到现存的函数,以致删除函数功能不是总有效。在打开很多文档的时候尝试打开Class Wizard会出现“value does not fall in expected range” 错误。再就是性能问题,打开的文档越多,类向导启动所需的时间就越长。

posted on 2009-11-10 17:34:34 by jiangsheng  评论(5) 阅读(2420)

 
2009年08月24日

如果使用Visual C++ 2005或者2008,那么这个更新可能已经被自动安装了。这个更新修补了ATl库中的一些安全问题。在安装这个更新之后,Visual C++运行时刻库会升级。这意味着如果代码面向的CRT版本是_CRT_ASSEMBLY_VERSION或者_BIND_TO_CURRENT_VCLIBS_VERSION,那么要随着新编译的程序发布新版本的CRT。如果程序没有定义这些宏,那么安全更新安装的重定向策略会把绑定到旧版本的引用自动转向新的CRT版本。

一个常见的问题是链接到旧版本的编译器生成的库文件。这样会在编译器生成的应用程序清单中生成两个不同版本的CRT引用。这时候要用合并模块或者手动编辑策略文件,确保重定向策略被正确安装到系统。

由于用户未必安装了Windows Update补丁,程序员需要随程序发布最新的Visual C++文件。对于vcredist发布的程序,可以直接下载Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package ATL Security Update。这个再发布包也可以在安装了Visual Studio的计算机中找到。对于使用安装程序制作工具的场合,Visual Studio会更新安装和部署项目使用的合并模块(Program Files\Common Files\Merge Modules)和bootstrapper(Program Files\Microsoft SDKs\Windows\版本号\Bootstrapper\Packages或者Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages),第三方安装程序制作软件则可能需要安装补丁或者手动替换Visual C++文件。如果应用程序把VC文件发布到安装文件夹,那么安装文件夹内的文件也需要更新以使用最新的运行时刻库和版本重定向策略。

一些旧版本的Windows SDK也包含ATL,建议使用新版本的ATL以避免安全问题。如果在安装了Visual Studio 2008 SP1之后安装了Windows SDK 6.1,那么在编译ATL项目时会出现编译错误

error C2039: '_Swap_adl' : is not a member of 'std' c:\program files\microsoft visual studio 9.0\vc\include\xutility 2764
error C3861: '_Swap_adl': identifier not found c:\program files\microsoft visual studio 9.0\vc\include\xutility 2764

这是由于Windows SDK 6.1包含Visual Studio 2008版本的ATL。解决办法是卸载SDK和VisualStudio,先装SDK,后装Visual Studio、SP1和ATL更新。

这个更新包含的不只是ATL的头文件,可以在KB971092里面看到大堆的PDB和再发布文件也被更新了。不建议手动更改ATL头文件来绕过安全问题,这样的话微软的更新程序不能更新修改过的文件。如果你已经手动更改了ATL的头文件,可以重新运行VisualStudio安装程序,卸载VisualC++之后重新安装,再应用SP1和ATL更新。下次修改系统头文件的时候,可以把文件复制到自己的目录,修改之后更改Visual C++的目录搜索路径。

关于这个更新的更多信息,可以参考MSDN第9频道的视频

posted on 2009-08-24 00:52:48 by jiangsheng  评论(1) 阅读(2903)

 
2009年02月14日

I have a web service that runs fine on my Windows XP. However, when I deploy to the production server, the web service returns 415 Unsupported Media Type when calling.

I have seen this error when WSE is not enabled on the client. The problem is, the web service is NOT using WSE. so I did the usual, uninstall ASP.Net, reinstalling, adding asmx extension to IIS, same error.

Now I need to fire a debugger to see what’s going on. Surprisingly, Microsoft.Web.Services3.dll is loaded even when there is no trace of it in my projects. Now I probably know what’s going on. There is another web service in a different virtual directory that uses WSE.

OK, I will isolate my web service to a new application pool. Well, that does not help. In the end I have to add WSE configuration to both my web service and my Windows client.

posted on 2009-02-14 23:30:53 by jiangsheng  评论(1) 阅读(3973)

 
2008年12月10日

VC项目组的成员正在Codeguru上接受关于C++0x的反馈和提问,地址是http://www.codeguru.com/forum/forumdisplay.php?f=98

上一次Visual C++ Yesterday, Today and Tomorrow的主题讨论地址在http://www.codeguru.com/forum/forumdisplay.php?f=89

posted on 2008-12-10 10:47:15 by jiangsheng  评论(0) 阅读(3197)

 
2008年10月12日

Boris Jabes 和Damien Watkins将会在PDC上演示Visual C++10中的新功能。IDE的新功能包括基于SQL Compact的智能提示支持自定义插件的新的项目和编译系统、面向大型应用的优化和改善的调试体验。MFC库增加了对Windows 7 中新增的多点触摸检测功能高DPI支持,以及Windows Vista中集成的功能,例如高彩图标Windows 搜索重启管理器。Visual C++程序员们才习惯不用MFC来直接调API。

MFC是很老了,不容易学,也不优雅,但是很稳定,也有很多第三方扩展和示例支持。其他的用户界面库还有很多,但是单单用户界面并不能完成一个程序。在调用操作系统的底层功能的时候,有一个面向对象的接口还是很方便的。

posted on 2008-10-12 08:03:27 by jiangsheng  评论(0) 阅读(4687)

 
2008年10月06日

In Visual C# 2005 SP1, I added an object data source to a web page that uses my business class as the select method. The method has one parameter of type Guid. The data source wizard generates code like this

<asp:Parameter DbType="Guid" Name="rowId" />

Although the web server has .Net 2.0 SP1 installed (I checked the registry), it still throws an error

Type 'System.Web.UI.WebControls.Parameter' does not have a public property named 'DbType'

The walk around is easy:

<asp:Parameter Type="Object" Name="rowId" />

posted on 2008-10-06 09:11:37 by jiangsheng  评论(0) 阅读(4328)

 
2008年04月08日

Visual C++项目组今天发布了Visual C++ 2008 Feature Pack。这个Feature Pack包含了一些以前需要付费给BCG Soft才可以使用的控件,例如BCG著名的窗口布局和风格自定义功能,不过也有一些有用的控件,例如文件夹列表文件夹树属性窗格等等。

这个Feature Pack也包含从Dinkumware获得授权的一些对STL的扩展,实现了TR1草案。这包含新的随机算法、集合类和正则表达式支持。关于TR1的更多信息,可以参考Dinkumware的网站

安装了这个Feature Pack之后,生成的应用程序在发布时需要同时发布新版本的MFC和CRT组件。预计对这个Feature Pack的技术支持策略会和VC6中从Dinkumware获得授权的STL库会是一个级别,也就是说,BCG Soft、Dinkumware和微软都会提供技术支持。如果在安装了这个Feature Pack之后需要安装Windows SDK 6.1,那么在安装完SDK之后需要修复Visual Studio 2008以保持文件是最新的。

目前发布的这个补丁只支持英文版的Visual Studio 2008 标准版或更高版本,其他语言版的Visual Studio 2008 要获得这些新的功能的话,需要等到Visual Studio 2008 SP1发布。Visual Studio 2008会包含这个Feature Pack。

posted on 2008-04-08 01:58:03 by jiangsheng  评论(0) 阅读(6017)

 
2008年01月07日

一个面向Visual C++ 2008的MFC更新测试版已经发布,同时也提供了文档的下载。这个版本包含新的界面的特性,例如Office Ribbon、2003和XP风格,Visual Studio风格和MDI标签。另外,这个版本也包含部分TR1的实现,例如正则表达式、更加丰富的集合和智能指针。

另外,在下载页面居然说这个版本还不支持Visual Studio 2008 Service Pack 1的Beta版,正式版才出来几天SP1的测试版就出来了?

posted on 2008-01-07 21:20:00 by jiangsheng  评论(2) 阅读(6068)

 
2007年12月20日

在未安装Visual C++ 2005 的计算机上运行使用 Visual C++ 2005开发的应用程序,必须先安装Visual C++ 2005 运行时刻库组件。Visual C++ 2005 SP1更新了这个组件,所以使用Visual C++ 2005 SP1 开发的应用程序必须随程序发布Visual C++ 2005 SP1运行时刻库组件。但是Visual C++ 2005 SP1的一个BUG造成使用安装和部署项目进行部署的时候,安装程序可能安装原版的Visual C++ 2005 运行时刻库组件,而不是SP1版本,造成使用Visual C++ 2005 SP1 开发的应用程序启动失败。这个问题的原因是%Program Files%Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\vcredist_x86下面的product.xml中的产品代码在安装Visual C++ 2005 SP1的过程中没有更新。要修正这个问题,可以打开这个文件,修改如下两行

<MsiProductCheck Property="VCRedistInstalled" Product="{A49F249F-0C91-497F-86DF-B2585E8E76B7}"/>

<BypassIf Property="VCRedistInstalled" Compare="ValueGreaterThanOrEqualTo" Value="3"/>

<MsiProductCheck Property="VCRedistInstalled" Product="{7299052b-02a4-4627-81f2-1818da5d550d}"/>

<BypassIf Property="VCRedistInstalled" Compare="ValueGreaterThanOrEqualTo" Value="5"/>

另外,Visual C++ 2005 SP1版本的可以用最新的Visual C++ 2005 SP1运行时刻库组件来替换%Program Files%Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\vcredist_x86下面的vcredist_x86.exe,这样安装和部署项目产生的安装程序中会包含最新版的组件。

posted on 2007-12-20 15:24:00 by jiangsheng  评论(2) 阅读(6601)

 
2007年11月19日

今天一个项目进行到测试阶段,把开发用的数据库结构导出到测试用的数据库,之后移动数据库关系图,正想着没问题的时候,程序报错,一个存储过程没找到。先以为是导出出了问题,但是重新创建存储过程的时候SQL Server却报告对象已存在,不能创建同名对象。上网搜索错误消息之后找到一个解决方案,执行http://support.microsoft.com/kb/827448这里的存储过程就可以解决问题。回想起来,原因可能是部分存储过程导出失败,之后导入数据库关系图的时候把这些存储过程的属性也导入了,但是没有导入sysobjects表里面对应的记录。2005版本的数据库关系图存在sysdiagrams表里面,倒起来容易多了。

P.S. 重命名存储过程之后要记得更新存储过程的SQL脚本里面的过程名称。

posted on 2007-11-19 21:29:00 by jiangsheng  评论(1) 阅读(5459)

 
【第1页/共15页,142条】
首页
前页
1
...

Powered by: Joycode.MVC引擎 0.5.2.0