
c++
haizhongyun
“守法”转载
展开
-
(摘)C++和C#相互调用COM组件的方法简介
1、在VS2005中,C#编写DLL并使用C++调用2、在VS2005中C#编写的COM组件,使用VC6.0调用3、在VC6.0中编写COM组件,使用VS2005 C#调用4、在VC6.0中编写COM组件,使用VC6.0调用其中每个类型都写了两个程序,一个为COM组件程序,一个为C++和C#相互调用COM组件调用程序程序实现:1、在VS2005中,C#编写DLL并使用C++转载 2012-04-26 22:44:13 · 667 阅读 · 0 评论 -
VC C++ 中 _T的作用
1\C++语言中“_T”是什么意思?VisualC++里边定义字符串的时候,用_T来保证兼容性,VC支持ascii和unicode两种字符类型,用_T可以保证从ascii编码类型转换到unicode编码类型的时候,程序不需要修改。如果将来你不打算升级到unicode,那么也不需要_T,-------------------------------------------------转载 2012-06-08 17:27:41 · 739 阅读 · 0 评论 -
c/c++数组与sizeof的基础知识
转自:http://www.cppblog.com/bloodsuck/articles/7575.html 1 、什么是 sizeof 首先看一下 sizeof在 msdn 上的定义: The sizeof keyword gives the amount of storage, in bytes, associated with a variable转载 2012-05-24 13:57:57 · 431 阅读 · 0 评论 -
目前最经典的关于虚函数的解释整理
自己也曾经被这些东西所困惑过,看见这篇文章写的不错,转载了过来,希望能给同样的迷茫中的人一点线索,仅供参考!(唯一不足之处就是应该把内存示意图贴出来就好多了,有时间我补上)[1]C++ 对象模型基础一个类中可以包含静态数据成员、静态成员函数、非静态成员函数和非静态数据成员以及虚函数。其中,前三者(静态数据成员、静态成员函数、非静态成员函数)都并没有被放到对象的布局中,可以从以下两段代码转载 2012-05-26 10:24:42 · 648 阅读 · 0 评论 -
C语言字符串函数大全
程序开头要声明#include 函数名: stpcpy功 能: 拷贝一个字符串到另一个用 法: char *stpcpy(char *destin, char *source);程序例: #include #include int main(void){ char string[10]; char *str1 = "abcdefghi"; st转载 2012-05-26 22:33:49 · 271 阅读 · 0 评论 -
C/C++如何获得文件大小
(一) 对文件操作时有时获得文件的大小时必要的.下面是获得其大小小的较简单方法.#include //C语言头文件#include //for system();using namespace std;int main(){ int handle; handle = open("test.txt", 0x0100); //open file for转载 2012-05-27 10:16:49 · 680 阅读 · 0 评论 -
C语言文件操作函数大全
clearerr(清除文件流的错误旗标)相关函数 feof表头文件 #include 定义函数 void clearerr(FILE * stream); 函数说明 clearerr()清除参数stream指定的文件流所使用的错误旗标。 返回值 fclose(关闭文件) 相关函数 close,fflush,fopen,setbuf 表头文件 #inclu转载 2012-05-27 11:58:34 · 380 阅读 · 0 评论 -
C语言中如何将二维数组作为函数的参数传递
转自:http://hi.baidu.com/outsmile/blog/item/38db95ede27206d2b31cb11d.html 今天写程序的时候要用到二维数组作参数传给一个函数,我发现将二维数组作参数进行传递还不是想象得那么简单里,但是最后我也解决了遇到的问题,所以这篇文章主要介绍如何处理二维数组当作参数传递的情况,希望大家不至于再在这上面浪费时间。正文:转载 2012-07-09 15:56:04 · 18564 阅读 · 2 评论 -
互斥与同步
互斥和同步是两个紧密相关而又容易混淆的概念:互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源,如“第一类读写者模型”。转载 2012-05-21 13:29:23 · 473 阅读 · 0 评论 -
VC|MFC内存不能为"read"的调试方法
我们来演示一下如何制造一起崩溃事件:我把这个试验的源代码列出来:const int x=10000;int main(int argc, char*argv[]){ int *y=0; y=(int*)&x; *y=10; return 0;} 我们用Microsoft Visual C++6.0转载 2012-10-17 11:54:08 · 4556 阅读 · 0 评论 -
类中的const变量和static变量
对常量成员的初始化,你应该在类的构造函数的初始化部分初始化,而非像静态类成员那样在类声明中初始化。 像这样:class abc{public:abc();private:const int ab;};abc::abc():ab(0)//在这里初始化。{}但是如果 static const int ab; 就可以这样定义:const int abc::ab转载 2012-10-30 17:31:22 · 837 阅读 · 0 评论 -
两个头文件相互包含的问题
大家知道C++文件一般包含.cpp文件和.h文件,当两个类相互在头文件中包含对方的头文件的时候编译器会报错的。如下例子:class object1 的头文件object1.h#include"object2.h"class object1{.....}class object2 的头文件object2.h#include"object1.h"class obje转载 2012-05-15 10:38:06 · 8000 阅读 · 0 评论 -
声明与函数、函数指针
概述 在很多情况下,尤其是读别人所写代码的时候,对 C语言声明的理解能力变得非常重要,而C语言本身的凝练简约也使得C语言的声明常常会令人感到非常困惑,因此,在这里我用一篇的内容来集中阐述一下这个问题。 问题:声明与函数 有一段程序存储在起始地址为 0的一段内存上,如果我们想要调用这段程序,请问该如何去做? 答案 答案是 (*(void转载 2012-05-14 14:21:10 · 437 阅读 · 0 评论 -
谈函数指针的实际应用
关于函数参数个数不定的详解见连接:http://www.cnblogs.com/VRS_technology/archive/2010/05/10/1732006.html 开篇之谈 有人曾说:正是指针使得C语言威力无穷!的确,提及指针这个充满玄机的东西,很容易令人想到很多很多。指针是C语言中一个重要的数据类型,指针和数组等复合转载 2012-05-14 14:15:25 · 904 阅读 · 1 评论 -
vc中调用Com组件的方法详解
vc中调用Com组件的方法详解转载自:http://dingchaoqun12.blog.163.com/blog/static/1160625042011617112057264/需求:1.创建myCom.dll,该COM只有一个组件,两个接口: IGetRes--方法Hello(), IGetResEx--方法HelloEx()2.在工程中导入组转载 2012-04-26 22:23:36 · 3372 阅读 · 0 评论 -
c++ 容器类 概括性介绍
c++ 容器类 概括性介绍C++中的容器类包括“顺序存储结构”和“关联存储结构”,前者包括vector,list,deque等;后者包括set,map,multiset,multimap等。若需要存储的元素数在编译器间就可以确定,可以使用数组来存储,否则,就需要用到容器类了。 1、vector 连续存储结构,每个元素是在内存上是连续的; 支持高效的随机访转载 2012-04-21 20:47:34 · 357 阅读 · 0 评论 -
从普通DLL中导出C++类
(转)Balon白话MSDN:从普通DLL中导出C++类(1) – dllexport和dllimport的使用方法(中英对照、附注解)转于:http://blog.youkuaiyun.com/balonfan/archive/2007/05/09/1602294.aspxBalon白话MSDN:从普通DLL中导出C++类(1) – dllexport和dllim转载 2012-05-07 22:28:57 · 1285 阅读 · 0 评论 -
使用DLL在进程间共享数据
DLL入门浅析(5)——使用DLL在进程间共享数据 在Win16环境中,DLL的全局数据对每个载入它的进程来说都是相同的,因为所有的进程用的都收同一块地址空间;而在Win32环境中,情况却发生了变化,每个进程都有了它自己的地址空间,DLL函数中的代码所创建的任何对象(包括变量)都归调用它的进程所有。当进程在载入DLL时,操作系统自动把DLL地址映射到该进程的私有空间,也就是转载 2012-05-08 11:46:17 · 496 阅读 · 0 评论 -
VC导出类得创建和使用 ,有例程
一、DLL的不同类型 使用MFC可以生成两种类型的DLL:MFC扩展DLL和常规DLL。常规DLL有可以分为动态连接和静态连接。Visual C++还可以生成WIN32 DLL,但不是这里讨论的主要对象。1、MFC扩展DLL 每个DLL都有某种类型的接口:变量、指针、函数、客户程序访问的类。它们的作用是让客户程序使用DLL,MFC扩展DLL可以有C++的接口。也就是它可以导出转载 2012-05-08 10:18:27 · 574 阅读 · 0 评论 -
动态链接库dll,静态链接库lib, 导入库lib
目前以lib后缀的库有两种,一种为静态链接库(Static Libary,以下简称“静态库”),另一种为动态连接库(DLL,以下简称“动态库”)的导入库(Import Libary,以下简称“导入库”)。静态库是一个或者多个obj文件的打包,所以有人干脆把从obj文件生成lib的过程称为Archive,即合并到一起。比如你链接一个静态库,如果其中有错,它会准确的找到是哪个obj有错,即静态转载 2012-05-08 13:59:30 · 352 阅读 · 0 评论 -
C++文件操作详解(ifstream、ofstream、fstream)
C++ 通过以下几个类支持文件的输入输出:ofstream: 写操作(输出)的文件类 (由ostream引申而来) ifstream: 读操作(输入)的文件类(由istream引申而来) fstream: 可同时读写操作的文件类 (由iostream引申而来) 打开文件(Open a file)对这些类的一个对象所做的第一个操作通常就是将它和一个真正的文件联系起来,也就转载 2012-05-27 09:46:59 · 794 阅读 · 0 评论 -
C++虚函数的显式声明
在C++中如果想要声明一个虚函数。则应该在类成员函数的函数原型前加 virtrue 关键字。那么在子类可以重写该函数。重新声明该函数时。可以加 virtrue关键字。也可以不加。以达到动态绑定的效果。如果该子类又做为一个父类。而该子类没有添加virtrue 关键字。那这样继承的类是否具有多态的效果呢。写一个测试代码测一下。 在C++中如果想要声明一个虚函数。则应该在类成员函数的函数原型前转载 2012-05-10 14:17:47 · 962 阅读 · 0 评论 -
CreateThread 函数常见错误 cannot convert parameter 3 from 'unsigned long (void *)' to 'unsigned long (__st
用VC创建新线程易出的问题error C2664: 'CreateThread' : cannot convert parameter 3 from 'unsigned long (void *)' to 'unsigned long (__stdcall *)(void *)'解决方案:(1)如果线程要执行的是类的成员函数,则必须用static声明为静态函数 如: cla转载 2012-05-10 15:11:28 · 1116 阅读 · 0 评论 -
static 与virtual函数
static函数可直接通过类名调用,不一定需要实例化对象,而virtual需要对象实例化好vtable才能被调用,两者不能搞在一起,再学习newdelete的时,在网上搜到了这样的例子,惊汗,一切尽在代码中://new delete运算符是static的,没有this指针#include using namespace std;class B{public:转载 2012-05-10 15:13:52 · 910 阅读 · 0 评论 -
成员函数调用delete this合法吗
成员函数调用delete this合法吗?只要你小心,一个对象请求自杀(delete this).是可以的。以下是我对“小心”的定义: 你必须100%的确定,this对象是用 new分配的(不是用new[],也不是用定位放置new,也不是一个栈上的局部对象,也不是全局的,也不是另一个对象的成员,而是明白的普通的new)。你必须100%的确定,该成员函数是this对象最后调用的的转载 2012-05-13 12:01:38 · 1783 阅读 · 0 评论 -
内嵌类
我们知道,程序在结束的时候,系统会自动析构所有的全局变量。事实上,系统也会析构所有的类的静态成员变量,就像这些静态成员也是全局变量一样。利用这个特征,我们可以在单例类中定义一个这样的静态成员变量,而它的唯一工作就是在析构函数中删除单例类的实例。如下面的代码中的CGarbo类(Garbo意为垃圾工人):?class CSingleton:{ // 其它成员 publ转载 2012-11-13 14:35:05 · 831 阅读 · 0 评论