
VC技术
lwanttowin
这个作者很懒,什么都没留下…
展开
-
服务动态选择域名问题
服务动态选择域名三种方案:1. 通过DNS就近调度。缺点:DNS的ip采集库维护很麻烦。优点:业务无缝接入。2. sim卡和语言判断国家,做国家与域名的映射,缺点:国际漫游不准确。优点:一般能准确路由到哪个服务,3. ping值最短作为就近服务器。优点:真正意义上的就近访问。缺点:国家不准确,上传数据导致法律违规。结论:根据用户选择的区域来选择域名。...原创 2019-12-25 10:19:00 · 267 阅读 · 0 评论 -
zeromq
使用zeromq注意context是多个socket的集合。频繁删除创建context会产生异常,估计是zeromq的bug,待分析原创 2013-02-28 15:28:14 · 407 阅读 · 0 评论 -
编码问题
从XML读进来的UTF8编码需要转一次到宽字符,宽字符再转化成窄字符。在中文系统下面读中文,没问题。但读韩文的时候,第二步就会出现丢失现象。 所以在国际化中,最好都统一用宽字符编码原创 2013-01-05 16:57:32 · 351 阅读 · 0 评论 -
脚本自动化的一点想法
"" "" scrollreturn1 fumodianBookfumodianBook fumodianMapID"" "" skillreturn1 backSkillbackskill LongJieMapIDscript script move1 (FLY-WALK)followpath startFly followpath"" "" throughGate1 T原创 2011-12-09 00:47:15 · 469 阅读 · 0 评论 -
中文路径
混合编码编译选项不能读中文路径需要设置为unicode编译选项 wifstream ifs;ifs.read(参数1,参数2)参数2传的是个数,跟Unnicode无关 将参数1转化成ansic过后得到的string.size()跟参数2不一样。所以取读取的长度还是用参数2 PS:string.size()跟string.length()都是得到的字节数原创 2011-06-17 15:09:00 · 729 阅读 · 0 评论 -
D3DLOCK写纹理遇到的问题
现象:以D3D_DISCARD方式来LockRect写入的显存数据在UnLock过后拷贝出来就崩溃,在一些机器出现而在某些机器就不会出现。 从D3D对D3D_DISCARD的解释说得通:即D3DLOCK_DISCARD表示不会取资源,只会全写资源,这样能立即返回给应用程序另外块显原创 2011-07-07 11:44:50 · 2100 阅读 · 0 评论 -
共享内存实践总结
经过实验得之,共享内存只有在两个进程同时存在的情况下映射才会成功当共享内存在一个进程映射的情况下,此进程一旦销毁,共享内存即刻销毁,当第二个进程创建共享内存,会有新的共享内存空间。另外console进程,在main函数内部return 0过后进程就OVER了原创 2011-05-06 11:40:00 · 827 阅读 · 0 评论 -
sizeof
对于new出来的arraysizeof()得到的只是指针大小 对于直接赋值的arraysizeof()得到的就是整个数组的大小 memcpy的时候特别注意原创 2011-06-13 16:54:00 · 453 阅读 · 0 评论 -
使用DC
<br />timer里面尽量避免使用DC,不然会非常慢原创 2010-06-04 10:18:00 · 1544 阅读 · 0 评论 -
规避软件架构风险之反模式
在QCON大会上,Michael Nygard,以及 李伟专家都提到了一个概念,容错能力。衡量软件架构最佳的一个很重要的因素就是看软件的容错能力。没有容错能力的软件,哪怕你QA都非常优秀,但一发生故障就出现集联失效,如同雪崩般,整个系统瘫痪,那么这样的一个系统也是个失败的架构。那么如何做到能将错误降低到比较能接受的程度呢。其中有提到将各个服务components解耦合,这是个相当笼原创 2010-04-23 23:08:00 · 801 阅读 · 0 评论 -
动态链接MFC引发的血案
首先简单描述下程序运行的步骤,我们要去加载两个DLL,先加载的称为A,后加载的称为B,加载A在里面做的事情是动态创建一个全局对象,加载B在里面做的事情是取得这个全局对象,然后干其他事情。 我们机子上运行的非常完美。但在用户的机子上却没法运行。报错直接说这个全局对象为空,并没被初始化。真是奇了怪了。开始认为我们的加载顺序有问题,查了下代码,没问题! 我们把程序放在WIN7下测原创 2010-04-01 16:58:00 · 669 阅读 · 0 评论 -
关于CString
昨天重构代码的时候,这样一段代码: CString str =_T("bbbbbbbb");LVITEM item = GetItem(str);LVITEM CLVIItemTestDlg::GetItem(CString text){ LVITEM item; item.iItem = 0; item.iSubItem = 0; item.mask原创 2010-03-13 11:45:00 · 819 阅读 · 0 评论 -
关于函数指针续二
前篇文章解决了关于函数指针的不同类成员函数传递的问题。不知道细心的朋友看见我上篇文章后,是否发现参数必须被限制为特定的参数。原来改进的代码如下: class CCallFuctionList { public: CCallFuctionList(); virtual ~CCallFuctionList(void);原创 2010-03-07 21:00:00 · 662 阅读 · 0 评论 -
关于函数指针续
前面有提到过关于函数指针调用C++非静态成员,解决了在类内调用函数指针的问题。 class CCallFuctionList { public: CCallFuctionList(); virtual ~CCallFuctionList(void); typedef void (CCallFuctionList::*F原创 2010-03-05 23:55:00 · 494 阅读 · 0 评论 -
CListControl的OnMouseMove和OnNcHitTest
实际案例如下: 将CListCtrl做成菜单样式。需要处理当鼠标移到ClistCtrl上的事件。处理逻辑这样:当鼠标移动到CListCtrl区域时候,将CListCtrl上所有ITem置为非选中状态,然后调用HitTest得到行数再将所选行置为选中状态。当鼠标移出ClistCtrl区域时候,将原来选中状态不变。 在实际做的过程中,在判断鼠标是否移到CListCtrl原创 2010-03-05 22:00:00 · 1666 阅读 · 0 评论 -
跨模块中的分配内存问题
现在有dll模块A,dll模块B以及静态库C,C中有个全局Create()函数负责创建对象M,当第二次调用Create()的时候会增加引用计数,并返回原来创建的对象M。Relase()会减少引用计数。当引用计数为0时,销毁对象M。现在在模块A中创建的初始化对象M,模块B继续调用Create(),出现在模块B中得到的对象并不是模块A所创建的对象M。想简单的通过将模块A中创建的对象M传给模块B解决原创 2010-02-26 01:03:00 · 1060 阅读 · 0 评论 -
关于函数指针调用C++非静态成员
当在类里面定义函数指针,而函数指针会指向类里面的成员的时候,这个时候成员需要定义为静态成员。实例代码如下: //.h#define SCMD_REGISTER 0class CCallFuctionList{public: CCallFuctionList(); virtu原创 2009-08-12 12:23:00 · 2060 阅读 · 0 评论 -
关于数据库备份的问题
首先我们来看数据库帮助上面的sql语句: BACKUP DATABASE Northwind TO DISK = c:/Northwind.bakRESTORE FILELISTONLY FROM DISK = c:/Northwind.bakRESTORE DATABASE TestDB FROM DISK = c:/Northwind.bak WITH MOVE原创 2009-08-11 10:24:00 · 863 阅读 · 0 评论