激烈振动

Visit My MSN Space

导航

2006年3月24日 #

ATL3.0组件注册bug的解决方法

摘要: ATL3.0编写的组件在注册时,如果组件所在目录包含中文路径,不能在注册表生产正确的路径,从而产生虽然注册成功,却不能使用的问题,因为在注册表记录的DLL路径中文部分有乱码。这个问题很久以前就发现,一直没有解决。前段时间在网上搜索到解决方案,并转载在blog上,却一直没有实际试用。今天企图使用,却发现不成功,昏倒,试了几次都不行。看来网上的代码还是不能轻信。不知道文章的作者有没有实际调试成功,不过... 阅读全文

posted @ 2006-03-24 13:09 vibration 阅读(1557) 评论(2) 推荐(0) 编辑

2005年11月16日 #

奇怪的引用错误及解决方法

摘要: 碰到一个奇怪的问题。 症状 在一个.net workspace中包含多个project,其中两个project应用了同一个.net assamply。这两个project其中一个编译正常,另一个则报错: error CS0246: The type or namespace name '***' could not be found (are you missing a using directi... 阅读全文

posted @ 2005-11-16 15:52 vibration 阅读(868) 评论(0) 推荐(0) 编辑

2005年11月4日 #

OLE2T在VS2003中转换中文失败的问题及解决方法

摘要: 以前VC6的代码,从xml文件中读取属性文字(中文),返回BSTR类型,用OLE2T转换,然后显示,一直工作很正常,用来做本地化,比修改Res文件要方便的多。同样的代码,在VS2003里面居然不能工作了,调试,发现BSTR返回正常,而通过OLE2T转换居然就全转成“???”了,晕。做了无数尝试,发现用unicode编译就正常。可是原来的VC6项目不论是否Unicode编译都... 阅读全文

posted @ 2005-11-04 17:03 vibration 阅读(1472) 评论(1) 推荐(0) 编辑

2005年9月20日 #

标题栏按钮的WTL实现

摘要: 起因上次完成了CAppBar的代码后,就一直想在标题栏的关闭按钮前面加一个按钮,来控制自动隐藏的设置。在标题栏上加按钮并不算特别麻烦,主要是控制WM_NCPAINT,把想要的效果画上去。当然,原理不复杂,要实现的好却不容易。上网搜了一下,有一些简单的例子用来讲述原理,没有找到比较好的实现,更谈不上可复用的代码了,那么只好自己实现了。原理首选必须明白原理,想在标题栏上创建CButton这样窗口按钮的... 阅读全文

posted @ 2005-09-20 10:45 vibration 阅读(3248) 评论(3) 推荐(0) 编辑

2005年9月14日 #

AppBar的WTL实现

摘要: 关于Docking Window的文章有很多,基本都是讲主程序内部的工具栏小窗口的Docking,看看代码,一般都很复杂。关于桌面Docking的文章并不多见。实际上从Windows95开始,Win32 API就提供了一个叫做SHAppBarMessage的函数,用于实现完全等同于Windows Task Bar的功能。即可以停靠在屏幕在任意一边,并把自己排除到桌面空间之外。当其他应用程序窗口最大... 阅读全文

posted @ 2005-09-14 17:05 vibration 阅读(3436) 评论(5) 推荐(0) 编辑

2005年9月9日 #

招聘C++和C#开发工程师

摘要: 招人了,需要比较扎实的C++基础,并能够使用C#开发,C++基础好的话,C#学一下也挺快,所以C#经验不作强制要求。工作地点在上海浦东,靠近科技馆。月薪应该在5k-8k左右。欢迎把简历投递到:atahr@ata.net.cn 并抄送给我:yaozhifeng@ata.net.cn 有任何问题可email给我。下面是发布在51job的广告,直接拷贝过来了。 招聘职位 系统开发中心 地址:浦东民生路... 阅读全文

posted @ 2005-09-09 15:04 vibration 阅读(1465) 评论(1) 推荐(0) 编辑

2005年9月7日 #

ATL组件中文路径注册问题(转载)

摘要: ATL组件注册的一个很糟糕的BUG,以至于需要通过修改ATL源码来解决。记录在此,方便下次重装机器后使用。 我曾用ATL写过一个COM组件(MBCS下编译),如果安装在中文路径下的话,注册就会失败. 为什么会失败? 打开ATL的源文件statreg.h,可以找到函数BOOL AddString(LPCOLESTR lpsz),他被组件的UpdateRegistry所调用,他又调用了BOOL Add... 阅读全文

posted @ 2005-09-07 17:11 vibration 阅读(1604) 评论(0) 推荐(0) 编辑

2005年6月30日 #

关于C++模板的连接问题

摘要: 好久没写模板了,这次做一项目,发现一处非常适合使用模板应用,于是写了个模板类,大概类似于酱紫//头文件template<classTElement>classTTTextT{protected:vector<TElement>m_chVector;public:intCount();}//CPP文件#include"TTText.h"template<classTEl... 阅读全文

posted @ 2005-06-30 14:27 vibration 阅读(5333) 评论(12) 推荐(0) 编辑

2005年6月2日 #

用窗口消息解决COM接口的多线程访问问题

摘要: 上篇讲了COM接口的多线程访问问题,并用全局接口表的方法解决了。但有时候我们不能直接访问接口指针,而是通过一个封装类间接的访问。比如:classSomeClass{private:IMyInterface*m_pInt;public:voidMethod1(){//Initm_pInt}voidMethod2(){//callmethodofm_pInt}}我们只能访问SomeClass的公共方法... 阅读全文

posted @ 2005-06-02 10:16 vibration 阅读(2200) 评论(2) 推荐(0) 编辑

2005年5月30日 #

用全局接口表实现COM接口在不同线程中的传递

摘要: 在多线程程序中使用COM对象真是件令人头疼的事情。当你能够访问一个接口指针的时候,并不意味着你可以调用接口上的方法。我从来没真正搞懂过所谓COM的几种线程模式。问题是,当我试图在一个线程里调用一个COM接口的方法,而这个COM接口是在另一个线程中创建时,从来没有成功过。更糟的是,连错误提示都没有。在多个线程中传递接口需要额外的工作,各种书籍上都介绍了所谓Marshal一个接口方法,不过我从来没有使... 阅读全文

posted @ 2005-05-30 10:13 vibration 阅读(2049) 评论(0) 推荐(1) 编辑