一切从C开始
百度首页 | 百度空间
 
文章列表
 
2008-07-25 23:41

组件编程是当前程序开发的热点,各种编程语言都为组件编写提供了很好的支持.通常我们用vc编写组件都是使用ATL框架编写的,这个框架封装了实现细节,许多程序员,虽然能写com组件,但是并不了解其中的原理。我们在后面的几篇文章中将介绍下c语言创建com组件,一步一步动手搭建一个com组件,让你彻底搞明白其中的细节。本篇我们先看看如何使用com组件。

理论:

组件对象模型,简称com,在windows操作系统中应用越来越广泛。比如:shell.dll就是采用com来
 
2008-07-23 15:19
分析:

程序开始,首先初始化通用控件库,这部分在前面文章中有详细说明.
InitCommonControls();

然后调用 GetProgramPath();得到程序的完整路径。
void GetProgramPath()
{
    GetModuleFileName(NULL,ProgPath,sizeof(ProgPath));
    char *pChar = ProgPath + sizeof(ProgPath) - 1;
    while(*pChar != '\\')
    {
 
 
2008-07-23 15:09
代码:(见光盘D:\mybook\examples\ODBC)
#include "windows.h"
#include "resource.h"
#include "commctrl.h"
#include "sqlext.h"
#pragma comment(lib,"comctl32.lib")

/************************************************************************/
HINSTANCE g_hInstance;
HMENU g_hMenu;
char ProgPath[MAX_PATH];
char DisConnect[
 
2008-07-23 14:38
理论:
ODBC是微软公司为支持各种不同类型的数据库提供的一套编程接口,通过这组api,用户无需考虑采用的数据库类型,无需改动代码即可实现各种类型数据库之间的相互移植。

在使用ODBC的时候,你需要了解以下四个组成部分:
1)应用程序
2)odbc管理器
3)odbc驱动程序
4)数据源

其中: odbc管理器是这个四个环节中的核心,用户只需要告诉它要干什么,它就会把用户的意图转达给它下面的odbc驱动程序,由odbc驱动程序完成指定的任务。
 
2008-07-21 13:28
接上篇:
分析:

下面是一个服务程序入口:
INT WINAPI WinMain(IN HINSTANCE hInstance, IN HINSTANCE hPrevInstance, IN LPSTR lpCmdLine, IN int nShowCmd )
{
    sTable.lpServiceProc = ServiceMain;
    sTable.lpServiceName = SERVICE_NAME;
    if(!StartServiceCtrlDispatcher(&sTable))
    {
 
2008-07-21 11:28
服务是一种特殊的应用程序,它只能基于NT内核的环境下运行,使用服务可以给应用程序带来很多灵活性。
理论:
   服务是一种可以长时间运行的可执行应用程序,可以在计算机启动时自动启动,可以暂停和重新启动,而且不显示任何用户界面。服务程序具有两个线程:
1)一个线程负责用户需要的后台操作。
2)一个线程用于与操作系统进行交互,通知其何时启动,停止,暂停,初始化,终止
 
2008-07-16 00:15
今天在看雪看了peaceclub 写的一篇文章,感觉不错,原文链接:http://bbs.pediy.com/showthread.php?t=68560
于是我在此基础上进行了举一反三。 关于这段代码的原理,作者没有过多的介绍,在这里我们详细谈谈。

先贴出我改写的代码:
#include <stdio.h>
 
2008-07-13 00:47

最基本的调试器检测技术就是检测进程环境块(PEB)中的BeingDebugged标志。IsDebuggerPresent() API检查这个标志以确定进程是否正在被用户模式的调试器调试。

 
2008-07-02 09:28
CPPEH_RECORD    struc ; (sizeof=0x18, standard type)
   old_esp         dd ?
   exc_ptr         dd ?                    ; offset
   prev_er         dd ?         
 
2008-06-28 00:38
接上篇,单步调试阅读mh1_.exe代码,会发现从exe的资源中释放出一个dll到系统目录中,exe的主要功能就是通过注册表写入当前exe的全路径名,生成的dll的全路径名,还有一个event名。然后就是终止掉 "Twister.exe","FilMsg.exe", "my.exe"这三个进程,接下来就是启动一个杀瑞星的线程,启动一个杀卡巴的线程,最后调用loadlibrary加载生成的dll.

接下来,我们就是奔入主题,来看下有exe生成的这个具有核心功能的dll.同样适用peid察壳,发现跟exe是同样的壳。步骤如下:
1。用od载入系统
 
     
 
 
个人档案
 
combojiang
男, 35岁
山东 青岛 
上次登录:
7小时前
加为好友
 
   
 
文章分类
 
 
 
 
 
 
 
     
 
好友最新文章
 
     
 
最近访客
 
 

linshier

shineastdh

keaixuesong

hljleo

_achillis

蔡文碧

jiyougang

小伟没来过
     
 
最新评论
   
文章评论|照片评论


向大哥学习!
您参考的源码是WRK还是ReactOS?
 

这里的MEMU应该贴出来啊.这样代码才有完整性啊.
 

受益非浅.看到这里来了.再次感谢老大.
 

今天看到这里来了 纪念一下..
 

感谢,笔误.已经修正.
 
     
 
背景音乐
 
 
其它
 
已有人次访问本空间
 
订阅RSS  什么是RSS?

您也想拥有这样的空间?请点此申请。
     


©2008 Baidu