c/c++相关
hanyuxinting
每天勤奋一点点
展开
-
wireshark 的使用(filter的用法)
一直不想动这个东西,是源于心理的惰性。当没有退路可言时,我在研究。 因为一直与服务器端调整不顺畅,让现在的项目总是卡在一个地方。靠别人无法解决问题,只能自己研究。所以拿出这个东西来玩。 解关于过滤器的问题:(以下文档来自于网络) 过滤器语法------------------------------------------------------------原创 2010-05-05 09:12:00 · 33151 阅读 · 6 评论 -
ActiveX 发布流程
<br />1. ActiveX 与 JS 打交道,就必须要实现 IDispatch 接口;<br />2. 要通过标记为安全的验证,就必须要实现 IObjectSafety 接口;<br />3. 要想发布给用户使用,就必须要实现数字证书签名。<br /> <br />就这样。原创 2010-09-14 10:34:00 · 496 阅读 · 0 评论 -
MD5/SHA 加密处理
看来需要用这个才是关键的处理。利用SHA1 源码来处理超大文件的checksum值计算真的好慢。改用:Windows Crypt API。先尝试一下看不看快起来。原创 2010-09-08 13:03:00 · 1003 阅读 · 1 评论 -
ActiveX 升级流程
<br />升级版本需要更新 DLL 的 版本号 与 INF 的版本号。同时要在引用该控件的 JS 代码中填写相应的版本号处理。<br /> <br />这样系统可以自动更新升级。<br /> <br />但如果要获取版本号,目前 JS 应该无法拿到控件的版本号。可手动在控件中添加此类方法,(但我觉得这样太被动了)。<br /> <br />原创 2010-10-18 10:54:00 · 736 阅读 · 0 评论 -
c++ 中 try catch 的一些
习惯了在 JS 中写 try catch 语句,所以在c++代码中瞎写。。杯具。我对c++的了解太少了。1.在C++中,很多错误是try{}catch{}捕获不到的,比如空指针访问,野指针访问等,程序都直接崩溃,不会让你捕获的。所以,很遗憾,我惯用try catch,并没有达到预期。2. 绝大多数 windows api 在执行时也并不抛出异常,直接挂掉。还是要对每一个问题做其相应的处理,才不至于挂掉。3. 但可考虑用 GetLastError 获取错误信息。4. 另,考虑到性能问题:在c++程序中,try原创 2010-10-18 13:17:00 · 4386 阅读 · 0 评论 -
Mozilla NPAPI ( Part 3 )
经过一个月的奋战,Firefox 插件算是出炉了。。现在反过来去想想那些经历的过程,连自己最开始写的文档都看不大清楚。重新来吧。从实战中总结。1. 为什么选择 plugins。原因有二。一、支持 plugins 实现的 NPAPI 被其他浏览器所支持,如 chrome, opera,safari , mozilla 这些都支持该接口。(To see:Scripting_plugins)另外,也被多种系统支持,Linux,Mac,都ok。二、他们说在 Firefox 下实现类似 IE 下 ActiveX 插件原创 2010-12-10 17:58:00 · 5084 阅读 · 4 评论 -
warning LNK4070 问题
<br /> <br />warning LNK4070 链接警告:需将 def 文件中 Library 改名。<br /><br />原创 2010-10-27 11:13:00 · 1761 阅读 · 0 评论 -
Mozilla NPAPI ( Part 1 )
<br />这几天在看这部分内容,终于有些眉目了。大概整理下。<br /> <br />1. 实现类似 IE 下 ActiveX 插件的东西,开始以为可以继续又玩 XPCOM 了,但后来发现 Extention 和要实现的东西不是一码事,NPAPI 出现。<br /> <br />2. 那 Extention 能否实现我想要的功能?能否通过 JS 和 Web Server 端进行交互?之前用 Extention 做的都是客户端的,一时转不过弯。据了解,plugins 是为了增强浏览器 browser 自原创 2010-10-28 17:29:00 · 6038 阅读 · 6 评论 -
Mozilla NPAPI ( Part 2 )
<br />继续深入敌后。。<br /> <br />上次全还都是皮毛,木有进入操练中。我一直很想知道 JS 和 NPAPI 他们俩怎么搅合的。<br /> <br />作自我批评,不要说文档少,一页纸就够你用,只是从来不用心去读。<br /> <br />对了,NPP 这个代表的是 NP Plugin;NPN 就是 NP Netscape 了。简单说明下。<br /> <br />7. 理解 Plugin API —— 方法和数据结构体(DS)。貌似 API 都这样。。方法即上边提到的两类:NPP 和 N原创 2010-10-29 11:07:00 · 3217 阅读 · 3 评论 -
Mozilla NPAPI(Part 4)
<br /> <br />本文主题: FF plugins 封装 IE Activex 控件。<br /> <br />主要有两点:<br /> <br />1. 在 c++ 中调用 COM 接口。<br />2. 数据类型间的转换。<br /> <br />具体解析:<br /> <br />1. 如何在 c++ 中调用 COM 接口:<br /> <br />@1 初始化 COM 库;<br />HRESULT hr = ::CoInitialize(NULL);<br />@2 创建 COM 组件实例原创 2010-12-23 19:06:00 · 2930 阅读 · 2 评论 -
遇到 static 的问题
<br />一直自以为对 c++ 基础还是很扎实的,结果昨天把一个编译运行都 ok 的文件拆分后,出现了运行失败的问题。整个项目没有代码内容上的修改,只是将代码分到不同的文件,然后再运行。<br /> <br />唯一的问题就在于,命名为 static 的变量被丢掉了。早上进行了验证,确是因为这个 static 的问题。提出的注意:<br /> <br />全局 static 作用域,文件内;跨文件,可考虑 extern。<br /> <br />原创 2010-11-09 11:14:00 · 824 阅读 · 0 评论 -
VARIANT 8204
<br />因为要做从 COM 到 NPAPI 的封装,遇到了从 VARIANT 向 NPVARIANT 转化的处理。<br /> <br />其中CComVariants 进行 Detach 打印出来的值为 8204。该值和 VARTYPE 里的任何值都不匹配,只能是数据的组合?经核实,的确如此。<br /> <br />VT_VARIANT + VT_ARRAY。。可以把它当做一个数组看。。。<br /> <br />验证通过,可以当个数组用。。但为啥,不知道。。越发感觉COM深奥。。<br /> <b原创 2010-11-11 15:33:00 · 1435 阅读 · 0 评论 -
REGDB_E_CLASSNOTREG 问题
<br />代码如下:<br /> <br /> HRESULT hr = ::CoInitialize(NULL); ISelectDlg *pSelectDlg = NULL; // 注释方法导致的错误是:REGDB_E_CLASSNOTREG //hr = ::CoGetClassObject(CLSID_SelectDlg, // NULL, // NULL, // IID_ISelectFileDlg, // (v原创 2010-11-11 18:02:00 · 4549 阅读 · 0 评论 -
编译 zlib 问题
<br />error LNK2005: _main 已经在example.obj 中定义 <br /> <br />这个是因为 加上了 example.c 或者 .h 文件。就会报错啦。。怎么能这么不小心呢~~~原创 2010-08-25 13:49:00 · 653 阅读 · 0 评论 -
编译 zlib 问题
<br />error LNK2005: _main 已经在example.obj 中定义 <br /> <br />这个是因为 加上了 example.c 或者 .h 文件。就会报错啦。。怎么能这么不小心呢~~~原创 2010-08-25 13:44:00 · 423 阅读 · 0 评论 -
字符串间的转换问题(拿来做个笔记)
<br />string 转 CString <br />CString.format("%s", string.c_str()); <br /><br />char 转 CString <br />CString.format("%s", char*); <br /><br />char 转 string <br />string s(char *); <br /><br />string 转 char * <br />char *p = strin转载 2010-08-13 14:06:00 · 618 阅读 · 0 评论 -
简解ATL(一)
ATL,ActiveX Template Library,是c++的一套模板库。主要用于开发 COM,ActiveX。 其出现的一部分原因也在于 MFC 过于庞大冗余,MFC 创建 COM 组件代码冗余量大,且有时候需要其运行时库的支持。而 MFC 因为其实现的功能很强大,其运行时库也就会很庞大,而 COM 不得已要加载这样的库文件,必然会使性能降低,如果在网络上传输,其还需要浏览器支持运原创 2010-05-07 12:05:00 · 532 阅读 · 0 评论 -
编译项相关的一些
近日,总是在与服务器联调,但这次是有史以来最麻烦的一次。很久没有动过C++的环境和代码,很多地方都很生疏了。 现在赶紧拾起来。 vista机器上编译的代码死活无法访问到服务器,调试到访问服务器那段时,引用总是报错。详见该贴:http://topic.csdn.net/u/20100505/18/614e2c77-e3a4-496f-8692-05e822149ce1.html原创 2010-05-07 11:47:00 · 398 阅读 · 0 评论 -
vs2005中安装boost
<br />原文地址:http://redwolf.blog.51cto.com/427621/88403<br />感谢原文地址提供的方法,很受益,终于可以编译了~~~~~~<br /> <br /> <br />前几篇都涉及到了一点boost的东东,可能有些朋友还没有安装boos库,这里转一个在vs2005中安装boost库的贴子。俺就是按照这个贴操作的,没问题。对朋友们或许有点帮助。 <br /><br /> 注:安装过程参考外表优美别致的的主题博客“Happiness of Progr转载 2010-07-06 15:36:00 · 793 阅读 · 1 评论 -
编译模式问题
<br />今天遇到的问题:<br /> <br />在MT模式下编译出现的:error LNK2005: _malloc 已经在 LIBCMT.lib(malloc.obj) 中定义<br />后改为MTD模式下编译,通过。原创 2010-07-06 16:53:00 · 467 阅读 · 0 评论 -
int 和 string 间的转化
<br />天下文章一大抄,抄的别人的。今天在处理字符串转换的问题时遇到的。<br />发现其实 boost 库中有很多便捷的接口可以将字符串和整型间的转化,不过这个用在了SHA1的实现中。<br /> <br /> <br />1. int sprintf( char *buffer, const char *format [, argument] ... );<br /> <stdio.h><br />例如:<br /> int ss;<br /> ch原创 2010-07-14 18:37:00 · 421 阅读 · 0 评论 -
C1853——不用预编译头
<br />fatal error C1853: 'Debug/fufatarj.pch' is not a precompiled header file created with this compiler<br /> <br />解决:预编译头部分设置:不用预编译头。原创 2010-08-04 15:57:00 · 557 阅读 · 0 评论 -
Web发布cab文件打包的ActiveX控件总结
转自:http://blog.csdn.net/SandyRZ/archive/2007/01/11/1480666.aspx<br /><br /><br />这两天做控件的web发布遇到了几个问题,现总结如下。 一、程序描述:程序环境:windows Xp sp2, ie 6, tomcat 5.5, vc++6.0 程序过程:控件做成ocx文件,用于客户端调用本地硬件,其中有用到第三方几个.dll文件。采用windows自带iexpress.exe 打包成cab文件,在服务器端jsp页面进行控件调转载 2010-08-05 17:48:00 · 600 阅读 · 0 评论 -
ActiveX CAB文件打包
<br />转自:http://blog.sina.com.cn/s/blog_4b81125f0100fv0y.html<br /> <br /> <br />CAB包中包括组件的.dll、.dll的依赖库和一个.inf文件。<br />下面为一个示例INF文件,内容如下:<br />softphone.inf文件 ;后表示注释<br />[Version]<br />signature="$CHICAGO$" ;支持Windows NT后所转载 2010-08-09 10:22:00 · 606 阅读 · 0 评论 -
关于boost中数据类型转化问题
<br />遇到一个问题,string转换为 int。利用 boost 库文件。<br /> <br />报错catch异常为:<br /> <br /><br />IEXPLORE.EXE 中的 0x7c812a6b 处未处理的异常: Microsoft C++ 异常: 内存位置 0x0012d5c8处的boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_le原创 2010-08-11 15:30:00 · 6235 阅读 · 0 评论 -
web打包相关
还是这里比较清晰些:文档参见:http://msdn.microsoft.com/en-us/library/aa751974%28VS.85%29.aspx原创 2010-08-09 17:59:00 · 478 阅读 · 0 评论 -
编写脚本使用的COM组件
<br />给脚本使用的COM组件的编写。<br /> <br />几点注意的:<br /> <br />1. 正确的数据类型的转换;在不清楚数据类型转换的时候,利用模板来实现是很不错的,里边基本上都包含了所有的对应的数据类型;<br /> <br />2. 关于文件编码的问题,多字节字符与宽字节字符间转换需要注意下;<br /> <br />ok。原创 2010-06-17 09:56:00 · 498 阅读 · 0 评论 -
文件读写的问题
测试文件加密时,考虑到中文路径问题,就做了个测试,结果运行时错误报出:invalid allocation size:4294967295 bytes。看了一些别人的说法,有人提到“4294967295 = 0xFFFFFFFF 就是 -1”,但我想这个问题是由中文引起的,所以跟踪程序发现,文件虽然看上去是被读取了,事实上读出来的大小为 -1。所以在给数组分配大小时,便报出上边的错误。现在需要解决下文件读写含有中文路径的问题。原创 2010-06-18 11:45:00 · 963 阅读 · 0 评论 -
了解 CRegKey
<br />在阅读代码中,遇到的一些东西,便整理下来。所以只是简单的浅显的认识,为后续有个介绍吧。<br /> <br />ATL 里的注册类。MSDN 链接地址为:http://msdn.microsoft.com/en-us/library/xka57xy4%28v=VS.80%29.aspx<br /> <br />理解注册类。要 Attach 和 Detach ,要读取及设置键值,各种数据类型的键值,删除键值,枚举键值,还有要 create , open, flush , close 等。<br /原创 2010-11-17 10:50:00 · 1226 阅读 · 0 评论