C++ VC 汇编
文章平均质量分 85
jiangtongcn
这个作者很懒,什么都没留下…
展开
-
c语言声明的优先级规则&//c语言声明的解码环[摘自c专家编程]
//c语言声明的优先级规则 A 声明从它的名字开始读取,然后按照优先级顺序依次读取。 B 优先级从高到低依次是: B1 声明中被括号括起来的那部分 B2 后缀操作符: 括号()表示这个一个函数 方括号[]表示这是一个数组. B3 前缀操作符:星号*表示"指向...的指针" C 如果const和(或)volatile关键字的后面紧跟类型说明符(如int,long等),那么它作用于类型说原创 2011-06-03 15:30:00 · 636 阅读 · 0 评论 -
无权图无向图【邻接矩阵存储】深度搜索和广度搜索--Java实现
<br /> <br /> 图顶点:<br />package org.pbdevj.ds.graph;/**图顶点*/public class Node implements Comparable<Node> { public Object value; @Override public String toString() { // TODO Auto-generated method stub return value.toString(); }原创 2011-05-07 00:49:00 · 2028 阅读 · 1 评论 -
Windows 消息分流器-HANDLE_MSG【转自别人,附上自己的实验代码】
windows消息分析器的实现很好理 解,windows操作系统使用消息处理机制,那么,我们所设计的程序如何才能分辨和处理系统中的各种消息呢?这就是消息分析器的作用. 简单来说,消息分析器就是一段代码,在我的讲述中,将分7重来循序渐进的介绍它.从最初的第1重到最成熟的第7重,它的样子会有很大的变化.但,实现的功 能都是一样的,所不同的,仅仅是变得更加简练罢了. 程转载 2011-07-02 16:10:55 · 705 阅读 · 0 评论 -
vc开发windows程序字符串处理国际化
一. 字符集简史 查看百度百科资料二、各种字符串处理函数库1 C运行库对字符串的处理:str*系列: C运行库早期使用strlen strcpy等str*系列函数对char类型的字符串进行处理。wcs*系列: C编译器内置了wchar_t这个16位宽字节类型后,使用新的wcslen wcscpy等wcs*系列的函数对wchar_t类型的字符串进行处理。_tcs*系列: C运行库转载 2011-07-02 16:17:48 · 866 阅读 · 0 评论 -
PE文件-FILE HEADER与OPTIONAL HEADER
本课我们将要研究 PE header 的 file header(文件头)部分至此,我们已经学到了哪些东东,先简要回顾一下:DOS MZ header 又命名为 IMAGE_DOS_HEADER.。其中只有两个域比较重要: e_magic 包含字符串"MZ",e_lfanew 包转载 2011-07-16 22:52:32 · 935 阅读 · 0 评论 -
PE文件-分析vc示范所有代码[不包含EXPORT TABLE]
#include #include #define PE_FILE_NAME TEXT("C:\\WINDOWS\\system32\\notepad.exe")#define CREATE_FILE_FAILURE "创建文件失败"#define CRE原创 2011-07-16 23:10:08 · 849 阅读 · 0 评论 -
PE文件-引入表[IMPORT TABLE]--转自iczelion,附vc示范
首先,您得了解什么是引入函数。一个引入函数是被某模块调用的但又不在调用者模块中的函数,因而命名为"import(引入)"。引入函数实际位于一个或者更多的DLL里。调用者模块里只保留一些函数信息,包括函数名及其驻留的DLL名。现在,我们怎样才能找到PE文件中保存的信息呢? 转到 d原创 2011-07-16 23:01:29 · 2828 阅读 · 1 评论 -
PE文件-节表--转自iczelion,附vc示范
我们已经学了许多关于 DOS header 和 PE header 的知识。接下来就该轮到 section table(节表)了。节表其实就是紧挨着 PE header 的一结构数组。该数组成员的数目由 file header (IMAGE_FILE_HEADER) 结构中 Nu原创 2011-07-16 22:56:09 · 1678 阅读 · 0 评论 -
PE文件-检验PE文件的有效性--转自iczelion,附vc示范
同样我首先附上Iczelion的PE文档:如何才能校验指定文件是否为一有效PE文件呢? 这个问题很难回答,完全取决于想要的精准程度。您可以检验PE文件格式里的各个数据结构,或者仅校验一些关键数据结构。大多数情况下,没有必要校验文件里的每一个数据结构,只要一些关键数据结构有效,我们原创 2011-07-16 22:49:53 · 1255 阅读 · 0 评论 -
PE文件-分析vc示范所有代码[包含EXPORT TABLE]
纯属个人研究,请勿见笑#include #include #define PE_FILE_NAME TEXT("C:\\WINDOWS\\twain_32.dll")#define CREATE_FILE_FAILURE "创建文件失败"#define C原创 2011-07-17 18:00:00 · 1092 阅读 · 0 评论 -
PE文件-PE文件格式
在研究之前首先拜读了来自网络的多篇文档,首先根据分析结果附图两张: ----------------------------------------------------------------------------------------------------------原创 2011-07-16 22:36:54 · 1190 阅读 · 0 评论 -
PE文件-导出表[EXPORT TABLE]--转自iczelion,附vc示范和图例
首先我贴上导出表结构图例:理论:当PE装载器执行一个程序,它将相关DLLs都装入该进程的地址空间。然后根据主程序的引入函数信息,查找相关DLLs中的真实函数地址来修正主程序。PE装载器搜寻的是DLLs中的引出函数。DLL/EXE要引出一个函数给其他DLL/EXE使用,有两种实现方原创 2011-07-17 17:54:54 · 1850 阅读 · 1 评论 -
FS TIB TEB PEB
本篇发表我的TEB 和 PEB的一些见解,我把它图形化了,更形象便于理解。首先对于TIB TEB PEB的概念我引用一下别人的blog了,以下内容取自看雪:TEB(Thread Environment Block,线程环境块):系统在此TEB中保存频繁使用的线程相关的数据原创 2011-08-23 21:57:09 · 4978 阅读 · 3 评论 -
MFC ActiveX ISafeObject的实现
默认情况下,编译的MFC Activex控件,只能在本地代码中运行,即便是网页,也只能在本地运行,一旦要想放在Web服务器通过IE访问,需要设置其初始化和脚本运行的安全性,为此您需要作出如下修改:在“工程名.cpp”文件中,增加以下方法: // 创建组件种类HRESULT CreateComponentCategory(CATID catid, WCHAR* catDe原创 2013-10-30 15:50:09 · 2523 阅读 · 0 评论 -
二叉树遍历[先序|中序|后序]C++版
<br />TreeNode.h:<br />// TreeNode.h: interface for the TreeNode class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_TREENODE_H__FE0E3819_0E26_4A04_950A_3B15D4808A4E__INCLUDED_)#define AFX_TREENODE_H__FE原创 2011-05-06 20:41:00 · 909 阅读 · 1 评论 -
二叉树遍历[先序|中序|后序]C++版--运行效果
<br />二叉树如下:<br /> <br /> 10<br /><br /> 20 30<br /><br /> 40 50 60 70<br />//----------------------------------------------------------------------------------------------<br />先序遍历:<br /><br /> <br />中序遍历:<br /><br />原创 2011-05-06 20:48:00 · 634 阅读 · 0 评论 -
C++模板类使用问题
<br />有以下模板类的声明和实现:<br />声明部分:<br />// MiniVector.h: interface for the MiniVector class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_MINIVECTOR_H__23822B17_CCD3_4FE4_BB87_3461E1E3C311__INCLUDED_)#define原创 2011-05-03 10:53:00 · 1018 阅读 · 0 评论 -
数组元素的指针和数组的指针
<br />#include <malloc.h>#include <stdio.h>int main(){ //数组元素指针和数组的指针是两个不同的概念 //数组元素的指针[通常操作的指针] printf("/n-----------------数组元素的指针[从栈上分配内存]-------------------------/n"); char chararry[20]; char * pCharArray = chararry;//声明指向数组元素的指针pCha原创 2011-06-02 16:17:00 · 628 阅读 · 0 评论 -
c语言文件操作
<br />#include <windows.h>#include <malloc.h>#include <stdio.h>#include <string.h>#define FILE_NAME "c://test.dat"//文件的打开关闭// int main()// {// // FILE* pf = fopen(FILE_NAME,"r");// if (pf)// {// printf("打开文件成功/n");// fc原创 2011-06-02 16:21:00 · 444 阅读 · 0 评论 -
VC函数调用约定[转贴]
使用C/C++语言开发软件的程序员经常碰到这样的问题:有时候是程序编译没有问题,但是链接的时候总是报告函数不存在(经典的LNK 2001错误),有时候是程序编译和链接都没有错误,但是只要调用库中的函数就会出现堆栈异常。这些现象通常是出现在C和C++的代码混合使用的情况下或在C++程序中使用第三方的库的情况下(不是用C++语言开发的),其实这都是函数调用约定(Calling Convention)和函数名修饰(Decorated Name)规则惹的祸。函数调用方式决定了函数参数入栈的顺序,是由调用者函数还是被转载 2011-04-17 01:16:00 · 523 阅读 · 0 评论 -
网络通信编程demo1[Tcp]
TcpServer:#include #include //the endpoint of servervoid main(){ //1.initiates windows socket WORD wVersionRequested = MAKEWORD(1,1); WSADATA wsaData; if (WSAStartup(wVersionRequ原创 2011-06-15 12:10:00 · 474 阅读 · 0 评论 -
多线程编程Demo[利用事件对象实现线程同步]
/* 本实例示范使用事件对象实现线程间同步[事件对象属于内核对象, *//* 它可以实现在不同的进程的不同线程间的同步, *//* 可以将本exe程序复制不同名字的文件然后运行, *//* 会发现即使重命名文件仍然不能同时运行多个exe] */#include #include DWORD WINAPI Fun1Proc(原创 2011-06-16 10:08:00 · 568 阅读 · 0 评论 -
多线程编程Demo[关键代码段[临界区]实现线程同步]
#include #include DWORD WINAPI Fun1Proc(LPVOID lParam);DWORD WINAPI Fun2Proc(LPVOID lParam);int balance = 110;//账户余额[最少10元保底]CRITICAL_SECTION critical;//代码临界区/* 运用关键代码端[临界区]实现线程间同步 *原创 2011-06-16 10:20:00 · 681 阅读 · 0 评论 -
字符串操作实践[内联汇编实现]
以下代码在VC6下编译测试通过函数实现:/***********************************************************************//* 比较两个字符串是否相等 *//**********************************************************************/bool isEqual(const char原创 2011-04-25 16:40:00 · 1760 阅读 · 0 评论 -
线程同步小结
互斥对象和事件对象属于内核对象,利用内核对象进行线程同步,速度较慢,但利用互斥对象和事件对象这样的内核对象,可以在多个进程中的各个线程间进行同步。关键代码段是工作在用户方式下,同步速度较快,但在使用关键代码段时,很容易进入死锁状态,因为在等待进入关键代码段时无法设定超时值原创 2011-06-16 10:27:00 · 434 阅读 · 0 评论 -
多线程编程Demo[利用互斥对象实现线程间同步]
/* 本实例示范使用互斥对象实现线程间同步[互斥对象属于内核对象 *//* 它可以实现在不同的进程的不同线程间的同步, *//* 可以将本exe程序复制不同名字的文件然后运行, *//* 会发现即使重命名文件仍然不能同时运行多个exe] */#include #include DWORD WINAPI Fun1Proc( LPV原创 2011-06-15 12:14:00 · 513 阅读 · 0 评论 -
使用多线程和Udp实现简易聊天程序
效果图:实现步骤:一、在CChat类中添加一个私有属性m_socket:二、在CChatApp::InitInstance()方法中添加代码加载SocketBOOL CChatApp::InitInstance(){ AfxEnableControlContainer(); if (!AfxSocketInit()) { AfxMessageBox("原创 2011-06-15 16:24:00 · 1499 阅读 · 1 评论 -
网络通信编程demo1[Udp]
UdpServer:#include #include /* udp server */void main(){ WORD wVersionRequested = MAKEWORD(2,2); WSADATA wsaData; if (WSAStartup(wVersionRequested,&wsaData)!=0) { printf("WSASta原创 2011-06-15 12:13:00 · 479 阅读 · 0 评论 -
选择排序c&汇编实现
<br />void CDsexampleDlg::SelectOrder(){ int count =m_list_num1.GetCount(); int * arr = new int[count]; char nums[3]; for (int i=0; i< count; i++) { memset(nums,0,3); m_list_num1.GetText(i,nums); arr[i] = atoi(nums); } DoOrder(ar原创 2011-04-29 14:31:00 · 801 阅读 · 0 评论 -
二分法查找例子
<br />#define SEARCH_NOT_FOUND -1 //没有找到查询的目标/************************************************************************//* 二分法查找[递归实现版本] *//* arr: 待查找的数组 *//* first: 搜索开始下标 *//* last: 搜索结束下标的后一位置 *//*原创 2011-05-03 10:37:00 · 3610 阅读 · 0 评论 -
MFC ActiveX访问WebBrowser(读取本地登录的QQ信息)
我用的MFC编写的ActiveX。要点1:项目中引入WebBrowserActiveX控件 要点2:由于WebBrowser本身是一个ActiveX组件,请在“项目名称App"类的initInstance()方法中添加:AfxEnableControlContainer();要点3:添加全局变量,并在Create方法中创建ActiveX,并调用navigate方法:要点原创 2013-10-30 16:10:16 · 2126 阅读 · 0 评论