«November 2020»
1234567
891011121314
15161718192021
22232425262728
2930


公告

本站技术贴除标明为“原创”的之外,其余均为网上转载,文中我会尽量保留原作者姓名,若有侵权请与我联系,我将第一时间做出修改。谢谢!

             ——既瑜


天气预报(南京)


我的分类(专题)

首页(183)
【趣味文摘】(22)
【五子连珠】(13)
【技术文档】(136)
【电脑技术】(6)
【疑难问题】(1)
【我的心情】(5)


最新日志
花语(中英文对照版)
各种花的花语
NTFS格式的7个精彩问答(pconli
童言无忌,有趣得一蹋
给MM修电脑的三个步骤[转载]
J2EE 面试题综合
JAVA编程规则
[转] P2P之UDP穿透NAT的原理与
[转]词法分析器
文件加密技术
一个让人发狂的PI求解C程序
[转]直线生成算法之DDA
[转]利用内核对象----互斥量实现应用
[转]如何正确的计算文件收发进度
双机调试VC程序
[转]分治法优化大整数乘法 C++实现
浮点数值的内存结构
[转]双链表实现大整数的加法与乘法[VC
拜占廷将军问题[转]
某人的挂QQ的程序源代码,虽然没用了,拿

最新回复
回复:vc中的CString的操作
回复:[转]分治法优化大整数乘法 C++
回复:[转]分治法优化大整数乘法 C++
回复:花语(中英文对照版)
回复:基本排序算法比较与选择[转载]
回复:c++中强制类型转换操作符小结
回复:c++中强制类型转换操作符小结
何必那么执着于是大头猫还是愤怒的小鸟,淡
回复:浮点数值的内存结构
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:32位位图到24位位图的转换
dren, ages 16 and 20
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:各种花的花语

留言板
签写新留言

不是0-1背包喔
桂花的花语``
谢谢
提议
提议

统计
blog名称:★既瑜★
日志总数:183
评论数量:636
留言数量:-25
访问次数:1366274
建立时间:2005年3月12日

链接


http://www.nju.edu.cn
http://bbs.nju.edu.cn 
http://www.t7-online.com
http://www.csdn.net
http://www.91f.net
http://www.crsky.com
我的MSN BLOG 

联系我

  OICQ:215768265
  njucs2001@hotmail.com
  erichoo1982@gmail.com

 

W3CHINA Blog首页    管理页面    写新日志    退出


[【技术文档】]对类成员进行特殊操作(2)
既瑜(224499) 发表于 2005/3/19 23:59:28

大家在看了文章1后以经对取得虚函数地址有所了解,但用它作回调函数还是有一点问题,因为要使成员函数正确运行,我们必须每次在调用这前传一个this给ecx(对应的成员函数中没有操作类成员除外,原因见(文章1)),作为回调函数,它可不给你这个机会,那怎么实现呢? 下面就是一种实现方法: 我们可以在数据段中开一个数组,在这个数组里存放一些特殊的数据,然后将这个数组的地址作为回调函数的地址,然后这个数组将被作为代码运行。那么这个数组对应的代码又做些什么呢?很简单的:将对象的地址传入ecx, 然后jmp到真正的回调函数。 下面是个例子: 主要部分也就是ThunkInit(ThunkData t, void *This, int VirFucID); 传入一个数组指针,一个对象的指针,一个对应第几个虚函数。然后这个函数将生成对应的可执行代码:将对象的地址传入ecx, 最

阅读全文(1915) | 回复(0) | 编辑 | 精华 | 删除

[【技术文档】]对类成员进行特殊操作(1)
既瑜(224499) 发表于 2005/3/19 23:58:36

以下在win2000, vc6中编译通过 大家有没有想到过用一个成员函数做回调函数呢?是不是老是编译通不过呢?那么下面将会给你一个答案。 在大家的印象中,访问类成员及函数,是不是object.XX或object.XX(); 其实在c/c++这种中级语言完全可以不守这个规矩。你其甚至可以存取类中的私有成员。不相信吗?大家看看这个例子: 例1:class CAA { public:      CAA() {m_data1=50; m_data2=100;}      ~CAA() {};      void print() { ::printf("%d, %dn", m_data1, m_data2); } private:      int m_data1;      int m_data2; };

阅读全文(2001) | 回复(0) | 编辑 | 精华 | 删除

[【技术文档】]消息与消息队列
既瑜(224499) 发表于 2005/3/19 23:57:37

About Messages and Message Queues
基于windows的应用程序是事件驱动的。它们不进行明确的函数调用(比如调用C运行库)来获得输入。取而代之的是他们等待操作系统将输入传递给他们。
操作系统传递所有的输入给各种应用程序。每个window有一个函数叫做窗口过程,只要有输入操作系统就调用他们。窗口过程处理输入后,将控制返回给操作系统。详细资料请看窗口过程。 Microsoft? Windows? XP:如果最顶层(top-level)的窗口停止响应几秒钟,系统将认为窗口被挂起。这种情况下,系统将隐藏这个窗口并用一个ghost window在相同z坐标上,相同的大小,相同的可视属性来取代他。以允许用户移动窗口,改变窗口大小,关闭窗口。然而,仅有这些行为是可操作的因为应用程序已挂起。在Debugger模式下,系统不产生ghost窗口。 This section discusses the following topics:
· Windows Messages
· Message Types
阅读全文(2013) | 回复(0) | 编辑 | 精华 | 删除

[【技术文档】]利用CRC-32检测程序的完整性
既瑜(224499) 发表于 2005/3/19 23:55:52

CRC-32算法原作者:胡春松

由于原算法是嵌在一个对话框类中,使用不尽方便,所以我将其提出,封装成一个CCrc32类,使用时只需定义一个对象,再调用int GetCRC(LPCTSTR csData, DWORD dwSize);便可得到结果。 或许你对CRC-32不是很了解,也不知有何用处,那看看下面: 以下摘自:http://www.luocong.com/articles/show_article.asp?Article_ID=15
作者:老罗CRC是什么东西呢?其实我们大家都不应该会对它陌生,回忆一下?你用过RAR和ZIP等压缩软件吗?它们是不是常常会给你一个恼人的“CRC校验错误”信息呢?我想你应该明白了吧,CRC就是块数据的计算值,它的全称是“Cyclic Redundancy Check”,中文名是“循环冗余码”,“CRC校验”就是“循环冗余校验”。
阅读全文(3212) | 回复(1) | 编辑 | 精华 | 删除

[【技术文档】]屏蔽系统热键的方法
既瑜(224499) 发表于 2005/3/19 23:55:13


在程序开发过程中,为了满足一些特殊的需求,有时需要屏蔽系统热键。这些系统热键包括Alt+Tab、Ctrl+Alt+Del、Alt+Esc、Ctrl+Esc、Win等。由于屏蔽系统热键涉及到系统的安全,所以一般不推荐这样做,但由于存在实际的应用需求,所以作为编程人员还是要对此加以了解。本文分三种情况来讨论屏蔽系统热键的方法。 在Windows 95/98操作系统下   在Windows
阅读全文(3758) | 回复(0) | 编辑 | 精华 | 删除

[【技术文档】]仅通过崩溃地址找出源代码的出错行
既瑜(224499) 发表于 2005/3/19 23:54:03

作为程序员,我们平时最担心见到的事情是什么?是内存泄漏?是界面不好看?……错啦!我相信我的看法是不会有人反对的——那就是,程序发生了崩溃!

“该程序执行了非法操作,即将关闭。请与你的软件供应商联系。”,呵呵,这句 M$ 的“名言”,恐怕就是程序员最担心见到的东西了。有的时候,自己的程序在自己的机器上运行得好好的,但是到了别人的机器上就崩溃了;有时自己在编写和测试的过程中就莫名其妙地遇到了非法操作,但是却无法确定到底是源代码中的哪行引起的……是不是很痛苦呢?不要紧,本文可以帮助你走出这种困境,甚至你从此之后可以自豪地要求用户把崩溃地址告诉你,然后你就可以精确地定位到源代码中出错的那行了。(很神奇吧?呵呵。)

首先我必须强调的是,本方法可以在目前市面上任意一款编译器上面使用。但是我只熟悉 M$ 的 VC 和 MASM ,因此后面的部分只介绍如何在这两个编译器中实现,请读者自行融会贯
阅读全文(3502) | 回复(0) | 编辑 | 精华 | 删除

[【技术文档】]深入了解MFC中的文挡/视结构
既瑜(224499) 发表于 2005/3/19 11:09:16

  作者:李泽宇 金刚 熊联欢 姜军 eNet学院

Visual C++ 6.0 以其功能强大、用户界面友好而倍受程序员们的青睐。但是,在当前的M
icrosoft 基本类库4.2 版本中,大约有将近200 个类,数千个函数,加之Microsoft 公司
隐藏了一些技术细节,使得人们深入学习MFC变得十分困难。


  MFC的AppWizard可以生成三种类型的应用程序:基于对话框的应用、单文档应用(SD
I)和多文档应用(MDI)。前两者的结构较简单,本文不再赘叙。笔者拟从MFC中的文档/
视结构入手,分析一些函数的流程,并解决编制MDI 应用程序过程中的一些常见问题。



(一)、了解文档/视结构


  MFC应用程序模型历经多年以有了相当大的发展。有一个时期,它只是个使用应用程序
对象和主窗口对象的简单模型。在这个模型中,应用程序的数据作为成
阅读全文(3881) | 回复(0) | 编辑 | 精华 | 删除

[【技术文档】]VC中的一些常用方法(20条)
既瑜(224499) 发表于 2005/3/19 11:02:56

VC中的一些常用方法
//一、打开CD-ROM mciSendString("Set cdAudio door open wait",NULL,0,NULL); //二、关闭CD_ROM mciSendString("Set cdAudio door closed wait",NULL,0,NULL); //三、关闭计算机 OSVERSIONINFO OsVersionInfo; //包含操作系统版本信息的数据结构
OsVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&OsVersionInfo); //获取操作系统版本信息
if(OsVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)

阅读全文(3234) | 回复(0) | 编辑 | 精华 | 删除

[【技术文档】]MFC界面包装类(多线程时成员函数调用的断言失败)
既瑜(224499) 发表于 2005/3/19 11:02:13

经常在论坛上看到如下的问题:
DWORD WINAPI ThreadProc( void *pData )  // 线程函数(比如用于从COM口获取数据)
{
    // 数据获取循环
    // 数据获得后放在变量i中
    CAbcDialog *pDialog = reinterpret_cast< CAbcDialog* >( pData );
    ASSERT( pDialog );  // 此处如果ASSERT_VALID( pDialog )将断言失败
    pDialog->m_Data = i;
    pDialog->UpdateData( FALSE );  // UpdateData内部ASSERT_VALID( this )
阅读全文(3232) | 回复(0) | 编辑 | 精华 | 删除

[【技术文档】]用Visual C++打造IE浏览器(3)
既瑜(224499) 发表于 2005/3/19 11:01:18

  二、实现收藏菜单   一般IE的用户都有个习惯,那就是将自己喜欢的网址保存起来,以方便今后快速的登陆,为了使我们的浏览器能够显示IE收藏过的网址,程序中设置了一个"Favorites"菜单,通过RegOpenKey()、RegQueryValueEx()等函数操作Windows的注册表中的HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders项,将收藏的网址显示到菜单上。为此,笔者定义了两个函数,实现代码如下所示: TCHAR GetDir( ) //得到存放
阅读全文(3001) | 回复(0) | 编辑 | 精华 | 删除

« 1 2 3 4 5 6 7 8 9 10 »

站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.078 second(s), page refreshed 144506879 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号