VC++
loveheronly
在广州天河软件园工作
展开
-
开发ActiveX详细步骤
1.打开开发工具-新建项目--选择MFC ActiveX控件,填写项目名字,然后点击确定2.在生成的项目向导中直接点击“完成”3.打开项目的资源视图,设置对话框的visiable=true。4.右键单击IDD_PROPPAGE_SPDEMO窗体,添加类CMainDlg,基类选择CDialog5.在spDemoCtrl.h文件里原创 2012-10-10 11:42:16 · 885 阅读 · 0 评论 -
error LNK2019: 无法解析的外部符号 "
这种情况一般都是函数只找到声明但没有实现,或者是少了什么链接库。1.如.h文件声明了,.cpp文件没有对该函数实现2.project-属性--link--输入--依赖库: 添加相应的库文件(.lib)原创 2013-03-24 21:20:04 · 913 阅读 · 0 评论 -
linux编程掌握常用命令
1)编译应用程序make -f makefile_5_2 cleanmake -f makefile_5_2 2)关于共享目录在linux虚拟机的/mnt/hgfs下可看到该文件夹 3)cd命令,进入文件夹cd /mnt/hgfs/ 4)复制cp命令cp -ri A/B/* A1/B1/ 提示是否覆盖\cp -rf A/B/* A1/B原创 2013-06-20 14:57:40 · 1166 阅读 · 0 评论 -
wireshark查看sip协议流
选择中你要查看的sip消息-----右键--follow udp stream,就可以查看出消息流的整个流程。原创 2013-07-08 17:46:55 · 4444 阅读 · 2 评论 -
ocx控件手动修改clsid的方法
替换掉工程的两个地方:IDL文件和CTRL文件。IMPLEMENT_OLECREATE_EX(CMultiwndCtrl, "MULTIWND.MultiwndCtrl.1",0x69ed7568, 0xd5a3, 0x49ea, 0x84, 0xd0, 0x8c, 0x20, 0x13, 0x67, 0x27, 0x24) 将16进制的GUID去掉 0x符号并进行拆分,替换原来的原创 2013-06-28 15:07:19 · 6057 阅读 · 0 评论 -
语音文件大小计算
声卡对声音的处理质量可以用三个基本参数来衡量,即采样频率、采样位数和声道数。采样频率是指单位时间内的采样次数。采样频率越大,采样点之间的间隔就越小,数字化后得到的声音就越逼真,但相应的数据量就越大。声卡一般提供11.025kHz、22.05kHz和44.1kHz等不同的采样频率。采样位数是记录每次采样值数值大小的位数。采样位数通常有8bits或16bits两种,采样位数越大,所能记录声音的原创 2013-06-28 11:40:06 · 4426 阅读 · 1 评论 -
开发Activex控件【二】
1.开发完ocx控件,在html页面测试如下:Test ActiveX 2.浏览该网页后,发现页面提示“在此页上的 ActiveX 控件和本页上的其它部份的交互可能不安全。你想允许这种交互?”对此我们可以在程序中实现去掉该提示:在spDemoCtrl.h头文件加上#include ,然后再CspDemoCtrl的protected下添原创 2012-10-10 06:17:14 · 843 阅读 · 0 评论 -
获取网页某一类的链接
根据某一类的url链接有相同的开头,以及相同的位置结束来截取字符串,从而取得其url,主要的思想是循环读取整个网页,获取类似的url原创 2013-07-03 10:20:47 · 1129 阅读 · 0 评论 -
bak脚本删除掉obj等文件
del /s /q *.pdbdel /s /q *.idbdel /s /q *.pchdel /s /q *.ncbdel /s /q *.objdel /s /q *.optdel /s /q *.logdel /s /q *.o复制另存为.bat文件即可 del *.obj /s del *.pdb /s del *.idb /s原创 2013-08-05 19:50:49 · 1383 阅读 · 0 评论 -
rtp包分析
用wireshark打开rtp包,分析IO Graphs图,以下的图中可以看出信息有1)最开始的0-2秒的包是小于50个2)2-18秒的包是比较稳定的,每秒都是50个左右3)20-50秒之间是没有包的,这段时间可以说是网络丢包了以下这张图是对rtp的分析,可以看到Packet[915],由于rtp包一般是每秒50个左右,这915/50 = 18左右,即18秒开始又Mar原创 2013-10-25 11:01:54 · 2631 阅读 · 0 评论 -
使用Set Factory2
1.安装过程中检查程序有没有在运行2.安装完程序的安装包后程序自动启动原创 2013-03-13 10:54:45 · 1034 阅读 · 0 评论 -
long *格式打印以及将long与数组的转换
void GetAgentsInfo(long Count, long AgentIDs,long* AgentStates, long* AgentTypes){g_oLog.print("SendEvtGetAgentsInfo AgentTypes=%p,%ld ,AgentStates=%p,%ld \n",AgentTypes,*AgentTypes,AgentStates原创 2013-03-12 14:21:45 · 1557 阅读 · 0 评论 -
IE调试dll(或ocx)
一、设置1.安全设置,包括本地和可信任站点的安全设置图2 IE安全设置2.设置成可调试状态,去掉如下图所示的两个禁用调试的勾选(好像在IE8中,无论是否勾选都可以调试) 图3 启用调试二、IE8调用VC6编写的DLL,断点无法进入。找了很长时间,仍然无法进入解决方案:关闭IE的保护模式,避免IE用多进程方式打开网页,否则调试器启动的IE进程跟网页所在原创 2012-09-20 10:03:43 · 7289 阅读 · 1 评论 -
error LNK2019
tcpclient error LNK2019: 无法解析的外部符号 "public: __thiscall acl::TcpClient::TcpClient(void)" (??0TcpClient@acl@@QAE@XZ) ,该符号在函数 "public: __thiscall CTcpClient::CTcpClient(void)" (??0CTcpClient@@QAE@XZ) 中被引原创 2012-09-26 09:55:51 · 641 阅读 · 0 评论 -
”预处理器定义“使用
1)如图,在项目属性里面的C/C++-->预处理器-->预处理器定义--添加代码ENABLE_Test2)代码如下就可以刚刚预处理器定义的 #include "stdafx.h"#include using namespace std;int _tmain(int argc, _TCHAR* argv[]){ #ifdef ENABLE_Test原创 2012-11-13 10:38:03 · 1648 阅读 · 0 评论 -
ActiveX添加自定义事件
1.在类视图中找到ctrl类,右击:2.填写方法名字以及相关参数 3.在相关函数里面触发该事件:int CtestCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct){ if (COleControl::OnCreate(lpCreateStruct) == -1) return -1; // TODO: 在此原创 2012-12-08 16:48:19 · 2718 阅读 · 0 评论 -
vector的assign分几部分数据
// VectorPart.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include using namespace std;typedef unsigned int CTuint;typedef std::vector CTuintArray;int _tmain(int ar原创 2012-12-20 18:27:23 · 1461 阅读 · 0 评论 -
根据classid值查找该dll或者ocx控件
如: 1)先看该classid值为:75718C9A-F029-11d1-A1AC-00C04FB6C2232)在注册表下面的HKEY_LOCAL_MACHINE/SOFTWARE/Classes/CLSID/查找,可以找到3) 点击InprocServer32这个可以看到该控件的名字以及相关路径原创 2013-01-27 20:40:26 · 8568 阅读 · 0 评论 -
取出dll的接口函数
#include "stdafx.h"#import ".\\NCT\\Editor.dll" no_namespace named_guids int _tmain(int argc, _TCHAR* argv[]){ return 0;}编译后再debug目录下,可以看到生成了.tlh文件,打开该文件就是该接口函数。对于该接口函数我们可以将其文件修改为头文原创 2013-01-29 17:15:32 · 2061 阅读 · 0 评论 -
IDispatch 接口的 LPDispatch 属性
IFileInfo *fileInfo=NULL; LPDISPATCH lpDisp; HRESULT hr; lpDisp=m_edit.get_FileInfo(); //m_edit-vc的dll控件的变量 hr=lpDisp-> QueryInterface(IID_IDispatch,(void **)&fileInfo); if (FAILE原创 2013-01-29 17:23:52 · 1431 阅读 · 0 评论 -
解析整形里面每一个字节的数据
a unsigned int (i.e. 32 bits) ;unsigned int num=256;其0X%08X的打印出来是OX00000010,解析为32个字节就可以这样解析 0000 0001 0000 0000 0000 0000 0000 0000如果是OX00002040,解析就为0000 0100 0000 0010 0000 0000 0000 0000原创 2013-01-18 19:53:37 · 1206 阅读 · 0 评论 -
map循环遍历删除
map的循环删除掉元素原创 2013-09-27 18:43:38 · 6557 阅读 · 0 评论 -
Map的使用
以下是一个更新Map里面的内容的例子:// testmap.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include using namespace std;typedef unsigned int CTuint;typedef map CTGroupQueue;typedef map::原创 2012-11-21 17:01:36 · 8582 阅读 · 0 评论 -
fatal error C1189: #error
提示错误“fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include !!!”解决方法是:找到该提示的文件,注释这一行原创 2013-12-02 16:15:45 · 894 阅读 · 0 评论 -
长短信与短信签名
长短信与短信签名原创 2014-09-22 21:49:56 · 1992 阅读 · 0 评论 -
vector 在循环中删除数据示例
// testVector.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include using namespace std;vector g_vbak ;int _tmain(int argc, _TCHAR* argv[]){ g_vbak.push_back("1"); g_vbak.push_bac原创 2015-04-03 15:48:13 · 3328 阅读 · 0 评论 -
post请求的分包程序
一、假如包的长度为Len,需要分x次发送Len=Len1+Len2+..+Lenx其实可以这样来发送就可以实现了1)第一次直接发的内容包头|LenBody(Len1)2)第二次发的Body(Len2)3)第X次发的Body(Lenx)二、程序简单举例分3次发包// tcpSend.cpp : 定义控制台应用程序的入口点。//原创 2015-04-23 21:55:13 · 3066 阅读 · 0 评论 -
TCP握手挥手以及分包发送
一、首先我们先了解一下Tcp的三次握手流程1)第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。2)第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进原创 2015-04-23 21:29:13 · 3224 阅读 · 0 评论 -
Tcpdump进行抓包,发现包不完整
客户端发的post请求的http包,用tcpdump抓包发现只抓到了一点(看包的长度是正确的,但是实际内容确不一样):win下用wireshark抓包,长度和内容都是正常的:原因分析:用Tcpdump进行抓包时,没有用-s参数指定抓取数据的长度,采用了默认长度为68或96字节;-s0则表示没有长度的限制。原创 2015-05-04 09:01:16 · 11765 阅读 · 1 评论 -
将调试相关日志打印到文件中
string m_strXmlContent="dfsafsdadfa"; stringstream strData; strData <<m_strXmlContent; fstream oFile; oFile.open("DoQuery.xml", ios_base::out); oFile << strData.str().c_str(); oFile.close原创 2015-07-11 17:21:15 · 932 阅读 · 0 评论 -
inet_addr 和inet_ntoa
// inet_addr.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include //htonl() 将主机的无符号长整形数转换成网络字节顺序//htons() 将主机的无符号短整形数转换成网络字节顺序//ntohl() 将一个无符号长整形数从网络字节顺序转换为主机字节顺序。//原创 2016-05-23 17:35:13 · 388 阅读 · 0 评论 -
vlc源码编译
一、环境准备 1.操作系统 ubuntu 14.04.1 LTS 2.安装以下插件[需要联网]$ sudo apt-get install -y gcc-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64-tools$ sudo apt-get install -y lua5.2 libtool automake autoconf au原创 2016-07-25 11:25:11 · 3481 阅读 · 0 评论 -
file的fread函数使用
size_t fread ( void *buffer, size_t size, size_t count, FILE *stream) ;参 数buffer:用于接收数据的内存地址size:要读写的字节数,单位是字节count:要进行读写多少个size字节的数据项,每个元素是size字节.stream:输入流读取wav文件头的示例struct wavhd原创 2014-12-12 18:29:39 · 1379 阅读 · 0 评论 -
route 路由
笔记本上有本地连接以及无线的,如果本地不能上外网,而无线能上外网,这时两个网卡都能正常工作,如果你要上外网,需要看看路由里面的设置信息。需要将无线设置为优先级。这个图里面可以看到有两个默认的路由[0.0.0.0标志],网关10.210.67.254 是本地连接的,112.49.232.1是无线的。根据Metric越小优先级越高,所以看得出默认路由是的网关是10.210.67.254,如果需原创 2014-12-07 14:20:48 · 920 阅读 · 0 评论 -
vs还原窗口布局
菜单栏--工具--选项: 环境--常规--右边的“重置窗口布局”即可! 再选择视图的“解决方案***”与“资源视图” 就可以还原出常用的工作窗口环境了原创 2014-02-27 14:31:58 · 3500 阅读 · 0 评论 -
根据程序名字找进程
BOOL FindProcessByName(CString name){int nProcess =0;HANDLE snapshot=CreateToolhelp32Snapshot (TH32CS_SNAPPROCESS, 0) ;if(snapshot == NULL)return FALSE ;SHFILEINFO shSmall;PROCESSENTRY原创 2014-04-03 20:40:31 · 1500 阅读 · 0 评论 -
获取当前网页的所有连接
// getURLS.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include using namespace std;int _tmain(int argc, _TCHAR* argv[]){ const char* filepath=".\\test.htm"; //网页文原创 2014-04-03 20:47:14 · 2384 阅读 · 0 评论 -
根据文件夹大小停止某进程
#define SEARCHFILETYPE "*.*"#define SYSCONFIG "config.ini"int g_FileSize = 100;int getFileSize(string &sFileName){struct stat buf;int iRet = stat(sFileName.c_str(), &buf);if (iRe原创 2014-04-03 20:45:14 · 862 阅读 · 0 评论 -
浏览器插件获取网页内容
void GetHtmlContent(){ //m_Explorer HRESULT hr; LPDISPATCH pDisp; IHTMLDocument2* phd;//IHtmlDocument2接口指针 IHTMLElement* pBody;//网页中的元素 pDisp = m_Explorer.get_Document(); hr = pDisp->QueryI原创 2014-07-27 15:47:47 · 7601 阅读 · 0 评论 -
调用dll的API
调用dll的API,快速开发原创 2014-09-22 22:52:57 · 1976 阅读 · 0 评论