![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
billnie
分享,积累,传播技术,在传播积累中进步。
展开
-
ATL组件模板模拟
ATL创建组件方便快捷,但是内部结构层次比较复杂,使用了很多的模板类。我在分析原理过程中,对其简化如化。组件实现了某个结口,对于创建,基本生存周期管理及接口查询,尽量让宏去处理或是父类去处理。对于创建通过每个组件的内部对象 Xobj来实现。读者可以创建一个mfc的控制台程序,把下面的程序拷去执行。#include "stdafx.h"#include "wtypes.h"#incl原创 2007-11-26 17:32:00 · 726 阅读 · 0 评论 -
基于手机音频通信应用
基于手机音频通信的设备实现原创 2013-08-21 12:50:47 · 2464 阅读 · 3 评论 -
ace+vs2015开发
最近要做一个pos管理工具,做了很长一段时间的ios开发,库太方便了,反过来看vs开发库不好,ace大而全,准备集成进来开发。1) 下载ACE源码ACE官方网址:http://www.cs.wustl.edu/~schmidt/ACE.htmlACE下载地址:http://download.dre.vanderbilt.edu/previous_versi翻译 2016-01-14 15:43:22 · 3505 阅读 · 0 评论 -
调试显示线程名称
调试的时候,观察线程及生命周期,为了方便可以命名线程,省得猜pthread的命名,当前线程pthread_setname_np("name");oc命名线程void setThreadName(char *name){ NSString *str; if(name !=NULL &&strlen(name) >0){ st原创 2017-05-28 10:27:26 · 621 阅读 · 0 评论 -
c hexdump
记录下,有时要打日志用#ifndef hexdump_h#define hexdump_h#ifdef __cpluscplusextern "C"{#endif void hexDump (char *desc,void *addr, int len); #ifdef __cplusplus}#endif原创 2017-04-25 19:43:54 · 359 阅读 · 0 评论 -
ios block彻底理清之代码与代码展开
1.从一个例子说起#include <stdio.h>int main(){ int i=1024; void (^blk)(void) = ^{ printf("i=%d", i); }; blk(); return 0;}2.代码展开 在命令行中输入如下命令,会生成一个2.cpp代码 clang -rewrite-objc 2.c#if原创 2017-08-21 13:50:51 · 412 阅读 · 0 评论 -
ios block彻底理清之代码分析
1.生成代码抽取 block类型,默认为0 // flags/_flags类型 enum { /* See function implementation for a more complete description of these fields and combinations */ // 是一个对象 BLOCK_FIELD_IS_O原创 2017-08-21 14:16:04 · 363 阅读 · 0 评论 -
libcurl获取网络文件大小含命令行和ios代码实现
命令行获取,如果获取百度首页返回的信息大小,返回如下信息 curl –head www.baidu.com $ curl –head www.baidu.com HTTP/1.1 200 OK Server: bfe/1.0.8.18 Date: Sat, 16 Sep 2017 07:31:35 GMT Content-Type: text/html Content-Length:原创 2017-09-16 16:59:11 · 1218 阅读 · 0 评论 -
libevent
osx下安装brew install libevent brew install –HEAD libuvxcode配置 Header Search Path /usr/local/includeOther Link Flag -l”uv” -l”event”exam#include <stdio.h>#include <stdlib.h>#include <sys/time.h>#i原创 2017-09-18 13:58:58 · 704 阅读 · 0 评论 -
boost + vs2015
boost 在vs2015下使用编译原创 2017-01-05 10:17:21 · 1648 阅读 · 0 评论 -
for_each + lambda 优雅的写代码
写惯了objective c 的 block代码,实现在方便,省事,代码简洁,c++的lambda也可以写得很简洁,记录下boost::property_tree::ptree pt; try { boost::property_tree::ini_parser::read_ini(path, pt); // 打开读文件 accountitem itm;原创 2017-10-28 08:00:30 · 476 阅读 · 0 评论 -
openssl vs2015编译静态库
去下载openssl-1.0.2m后,按如下流程编译,会报错1. 安装ActivePerl, 并添加环境变量(可以默认勾选,或者手动添加,如path=d:\perl\bin)。2. 解压openssl。3. 点击 windows 开始->所有应用->vs2015->开发者命令提示(Developer Command Prompt for 2015)。4. CD到解压后的openssl的根目录。5.原创 2017-11-11 10:16:31 · 3565 阅读 · 0 评论 -
libcurl windows下编译和post使用及https支持
osx上libcurl使用,简单,不用编译,使用brew很方便,windows平台需要自己编译。 现在github或是官网去下载包里projects\Windows直接有工程,选择相应的vs版本编译即可。将库加入工程,编译报错 1>bitminner.obj : error LNK2001: 无法解析的外部符号 __imp__curl_global_init 1>bitminner.obj :原创 2017-11-05 21:21:14 · 1866 阅读 · 0 评论 -
基于手机音频通信应用
基于手机音频通信应用原创 2013-08-21 13:24:31 · 4217 阅读 · 1 评论 -
jni的几个类简单分析
class _jobject {};class _jclass : public _jobject {};class _jstring : public _jobject {};class _jarray : public _jobject {};class _jobjectArray : public _jarray {};class _jbooleanArray : pub原创 2012-12-24 14:33:18 · 837 阅读 · 0 评论 -
ATL组件模拟之多接口实现和内部类实现多接口
对于ATL生成的组件,很容易实现多个接口(不管是通过继承多个接口的方法或是通过内部类的方法),那么如何实现呢,关键还是对于组件的生存周期管理和创建管理,另外就是组件对于多接口查询的支持了。对于多重继承和内部类实现多重接口组件的模拟类图如下: 源代码如下 #include "stdafx.h"#include "wtypes.h"#include "objbase.h"#incl原创 2007-11-27 15:05:00 · 1750 阅读 · 0 评论 -
COM之套间的理解
对于从事com组件开发的工程师来说,寓所的概念是比较难理解的,微软对这方面的解释又很少,我将在以后的时间里,对寓所的概念给出解释。 一、com库初始化过程调用堆栈CoInitializeEx(NULL, COINIT_APARTMENTTHREADED)堆栈> user32.dll!_CreateWindowExW@48() + 0x1c 字节 ole32.dll!InitMai原创 2007-12-05 17:26:00 · 1667 阅读 · 0 评论 -
COM之套间理解之二
一、当主线程和辅助线程com库设置为COINIT_APARTMETNTHREADED时, 测试组件1设置为Single模式时,在辅助线程创建组件时,会出现死锁,此时辅助线程死锁的堆栈如下。ntdll.dll!_KiFastSystemCallRet@0() user32.dll!_NtUserMessageCall@28() + 0xc 字节 user32.dll!_Sen原创 2007-12-07 09:52:00 · 1281 阅读 · 0 评论 -
vs2008使用之安装
准备将开发转移到.net上,经过一段时间的学习感觉.net托管了库函数,不能跟踪进库函数,感觉这点很不方面,查询网上后看到好像是vs2008支持库函数代码调试,于是花了一个小时去下载3.82G的开发环境和库及sdk。 再花去一小时安装,终于可以开始体验了,以后会发一些学习的经过的文章,以记录我的学习进程。原创 2007-12-12 10:21:00 · 718 阅读 · 0 评论 -
loadlibrary("")失败-找不到指定得模块组件注册失败-处理办法
我在vs2005上开发组件,有时会碰到组件注册不了,我查了下网上说返回vc6的工程就可以了或是重建工程,那太麻烦,经过我的测试,将.def文件移除,再添加就可以解决这个问题。 作为一个小的经验分享给大家。原创 2008-01-08 11:00:00 · 9995 阅读 · 4 评论 -
我的日志记录组件
和大家分享下我写的日志记录文件组件。下面是一些定义和调用的封装。如存在bug,欢迎指正。如需要demo程序和组件可去我在csdn下的下载资源或是去风华软件在线(www.fhuasoft.cn)网站上去下载。//下面是定义文件#ifndef _DEBUG_TRACE_2004#define _DEBUG_TRACE_2004#include #include "logdeal.h"原创 2008-04-29 13:48:00 · 854 阅读 · 1 评论 -
探秘大数据结构之SAFEARRAY
在开发时,经常会遇到要传结构或是多个变量,为了适应于多种数据结构变量的传输,微软定义了SAFEARRAY变量,为此我研究了下这种变量,和网友们分享下。 实质上SafeArray就是将通常的数组增加一个描述符,说明其维数、长度、边界、元素类型等信息。一、定义typedef struct tagSAFEARRAYBOUND { ULONG cElements; LO原创 2008-08-08 15:29:00 · 1347 阅读 · 0 评论 -
MIDIDecoder Filter的用法
最近利用业余时间整理之前的一些东西,写了个MIDI Decode集成File Source + Decoder的 Filter。虽然不是很完善(不具备Seek和midi音量控制暂未做),抽时间再完善下,对于windows pc平台没啥优势,主要将来用在ce平台上的midi的解码(ce平台没有看到这个filter),整理下,以具将来不时之需。 解压后文件目录为MIDIDeco原创 2010-01-16 09:03:00 · 987 阅读 · 0 评论 -
基于接口访问与基于接口实现类访问
在基于对象模型特别是com对象的应用开发中,我们一般是定义了相当多的接口,及围绕接口相当多的实现类。这里涉及到对相关接口的访问,访问是基于接口指针访问还是基于接口实现类的访问,这两者是有不同的。 基于接口访问,那么只能调用接口的方法,对于实现部分其它的方法的调用是无能为力的。 基于实现类的访问,可以调用其所有的方法,与普通实现类的调用是没有什么不同。唯一不同的是我原创 2009-12-14 10:59:00 · 1270 阅读 · 0 评论 -
WM5.0unresolved external symbol "void __cdecl `eh vector constructor iterator'处理办法
最近在开发时碰到这个错误,经过搜索发现出下面的错误,加入下面的lib就可以解决,分享下。 这个错误主要是分析创建类对象数组时报错。 error LNK2019: unresolved external symbol "void __cdecl `eh vector constructor iteratorerror LNK2001: unresolved external s原创 2009-12-24 11:41:00 · 2039 阅读 · 0 评论 -
rtsp协议调试程序
最近碰到移植rtsp库到wince下,读不到数据,为了解决问题,写了一个小的rtsp客户端协议学习程序,实现基本的会话协议,OPTIONS,DESCRIBE,SETUP,PLAY等协议,将读取的数据存入到文件中去。程序代码贴在下面,这个代码能在ce和pc上跑。供大家分享下。 #ifdef _WIN32_WCE#include "stdafx.h"#endif#ifndef _WI原创 2010-01-05 17:30:00 · 2964 阅读 · 2 评论 -
WebKit编译的几点看法
WebKit编译的几点心得原创 2010-06-04 14:00:00 · 744 阅读 · 0 评论 -
初识Qt
<br />最近有幸用到Qt,谈几点浅薄看法。<br /> <br />qt 包很强大,包括的东西真的很多,ui,浏览器,图形等等真的真多。<br />qt支持的平台很多,linux, mac, windows, ce等。<br />qt的项目配置文件很牛,根据平台特性生成。<br />perl脚本真的是无处不在。<br /> <br />对于跨平台设计及大型项目管理挺有借鉴的,虽然之前也有在一家大型公司做过手机项目,也是集成编译,但是组织而言,太小儿科了。<br /> <br />另外对于没有生的工程,可原创 2010-06-07 15:38:00 · 540 阅读 · 0 评论 -
ios及osx集成aliyun 日志组件
ios直接使用sdk 使用pod集成,使用请直接去下载代码试用。pod 'AliyunLogObjc', :git => 'https://github.com/billnie/AliyunLogObjc.git'osx使用c sdk 由于这个sdk使用到libcurl, apr, apr-util, macosx sdk中包含了这几个库,可以直接使用设置包含头文件路径${SDKROOT}/us原创 2017-12-12 15:49:06 · 974 阅读 · 0 评论