摘要:
c++学习手记(一)——初印象
陈根发
听说vb 将要淡出江湖,作为一个vb的fans自然免不了着急,为了明天能孝敬父母。:)决定忍痛割爱,学c++去了。
几天的c++接触,初步有了点印象。c++其实是c的孪生兄弟。从下面的例子可以清楚反映。
#include <iostream.h> //头文件是不是也又了点变化
int add(int a,int......
摘要:
前言
很多网友问到,在html的页面中放置一个com对象,这个对象该如何调用页面中的脚本函数的问题,本人近日也因为工作需要实现这样的功能,在网上搜索后,获得了很多帮助,但并没有发现完整的实现。本文描述了实现过程中的几个要点,同时提供一个示例工程的下载。
1——给接口添加一个方法:方法名:setclientsite参数:ioleclientsite* pclientsite
2——给上面的方......
VC下的函数地址
vc下的函数地址
最近突然有一位同事问我关于虚拟继承(virtual inheritance)的问题,我记得在«虚拟与多型»(繁体版,1998年)里读到过,也许当时读的匆忙,一知半解的,所以现在也答不清楚.于是,我又拿起这本书重新读了第二章c++物件模型.这一次我读的仔细多了.在这章的结尾作者,侯捷老师留下了一个关于函数地址的疑问.在网上搜了一下,没有发现有人解答过这个问题,正好最近比较空,所以就下决心研究了一番. 【程序编程相关:
任意规模指派问题的C++类实现】
【推荐阅读:
数据结构学习(C++)续——排序【4】选】
这里我先重复一下三种取得函数地址的方法: 【扩展信息:
借助VMware实现单机使用WinDbg】
1.从vtbl观察到的virutal member function的地址.这个地址可以用程序的方法得到,也可以使用调试器直接观察得到.我使用后者.
2.在调试器中直接把光标移到member function的名称上,或者在watch窗口里,直接输入class::func(比如:a::func1),观察所得.我使用后者.
3.在程序中直接取得member function的地址.
书中留下的问题是,对于同一个函数,有时这三个地址不相同.准确地说,如果是virtual member function,这三个地址总是不同的.如果是non-virtual member function,2与3也不相同.
先说说我的实验结果(所有实验都是在vc6上做的):每一个函数,不管是non-virtual member function,或是virtual member function,或是static member function,编译器都会为它生成一组代码,这组代码的第一条指令的位置,就是函数的地址,姑且称它为函数的实体地址(body address).这就是使用第二种方法取得的地址.
但是,当程序的其他部分要呼叫某个函数的时候,编译器生成的代码不会直接使用函数的实体地址,而是使用一个另一个地址,姑且称它为函数的符号地址(symbol address)....
下一页 摘要:
n 编写visual c++组件
确定创建服务器组件的最有效的工具
当你着手创建com组件时,你可以选择与visual basic、delphi、mfc和atl不同的工具。让我们比较一下每个工具,来揭露它们各自的优点和缺点。
当着手写com类时,你可以有几种选择,你可以选择用c++满足com。这种选择提供了最大的灵活性但是很枯燥。另外,你可以选择visual c++提供的两种主要的框......