com组件调用:C++和C#编写并且相互调用COM组件

前阵在工作中做项目时候遇到了COM组件和使用问题当时研究和好阵才把中间环节打通现在写出来为大家提供方便这里包含了 4个类型: 1、在VS2005中C#编写DLL并使用C 2、在VS2005中C#编写COM组件使用VC6.0 3、在VC6.0中编写COM组件使用VS2005 C# 4、在VC6.0中编写COM组件使用VC6.0 其中每个类型都写了两个个为COM组件个为 实现: 1、在VS2005中C... [阅读全文]

组合框控件:C++组合框Control控件运用要领

CComboBoxControl控件又称作组合框Control控件其有 3种形态可供选择1.基本组合框(Simple)2.下拉组合框(Drop-down)3.下拉列表式组合框(Drop-down list)    CComboBoxControl控件常用配置属性介绍说明:    type属性:里面共有 3个选项就是其 3种形式 我们常用是后两种形态其区别就是Dropdown编辑区为可编辑Contr... [阅读全文]

赋值构造函数:赋值运算符 复制构造函数(拷贝构造函数)易混处整理总结

赋值运算符和复制构造都是用已存在B对象来创建另个对象A区别的处在于:赋值运算符处理两个已有对象即赋值前B应该是存在;复制构造是生成个全新对象即复制构造的前A不存在 CTemp a(b); //复制构造C风格化 CTemp a=b; //仍然是复制构造不过这种风格只是为了和C兼容和上面效果样 在这的前a不存在或者说还未构造好 CTemp a; a=b; //赋值运算符 在这的前a已经通过默认构造构造... [阅读全文]

map排序:map和set的排序

C STL中标准关联容器, multi, map, multimap内部采用就是种非常高效平衡检索 2叉树:红黑树也成为RB树(Red-Black Tree) map和树建立的时就会自动排好序的前使用map觉得按value排序很麻烦要建个multimap将原map倒置存储如何只用个map实现value排序呢?将key 和 value建个结构体再将结构体作为key建个map 而排序当然要写比较这个又... [阅读全文]

carray:CArray详解

template TYPE, ARG_TYPE CArray:public CObject 参数 TYPE 模板参数指定存储在中对象类型TYPE是个由CArray返回参数ARG_TYPE 模板参数指定用于访问存储在中对象参数类型通常是个对TYPE参考ARG_TYPE是个传递给CArray参数 介绍说明 CArray类支持和CArray相似但是必要时可以动态压缩并扩展索引从0开始可以决定是固定上界还... [阅读全文]

pragmapack:#pragma pack 和 sizeof

#pragma 是个预处理指令其中#pragma pack指令直接影响到个结构体、联合体、类内存布局那么它是如何影响首先我们来看两个类 #pargam pack(8) struct TEST1 { char v[9]; x; }; struct TEST2 { char v[9]; long long x; }; 请问(TEST1)和(TEST2)值是多少?如果当第行指令改成#pargam pa... [阅读全文]

深入new/delete:New的3种形态

New 3 种形态: operator 、 operator 、 placement 操作符 ( 表达式 , operator , expression): 通常我们 X * pX = X 时使用就是这个操作符 , 它由语言内建 , 不能重载 , 不能改变其行为 . 它包括分配内存 operator 和构造 placement 关键字实际上做了 3件事:获得块内存空间、构造... [阅读全文]

virtual函数:绝对不要重新定义继承而来的non-virtual函数

内容: 我们来看个例子, B为基类 D为public继承自B子类: B{ public: void func{...} }; D:public B{...} 接下来我们面对以下行为: D dObject; B* basePtr = &dObject; D* dOjbectPtr = &dObject; 看下面这两种方式: basePtr-func; dOjbectPtr-func; 两个指针指... [阅读全文]

littleendian:有关bigendian和littleendian的解释

首先明确大小端是和cpu相关而非系统平台相关elX86为小端 其次大小端对位移操作没影响不管大小端左移都是消高位右移都是消低位位移操作汇编出来都只有句: SHL\SHR COUNT其实现由cpu制造商自己去处理来满足位移定义不需要员操心 看下面测试大小端用例: a=1; char b=*((char*)&a); 若b为1则为小端否则大端 在我机器上结果为1结论正确 这里忽略了个假设那就是假设可用... [阅读全文]

条件反射:C++反射的一种实现方式

#pragma _disibledevent= std::listReflector* m_lstRef; }; #pragma _disibledevent= std::listReflector* m_lstRef; }; Reflector.cpp: view plaincopy to clipboardpr? # "Reflector.h" Reflector::~Reflector { ... [阅读全文]

ace编程:ACE编程遇到的问题

1配置在项目属性页里添加附加包含目录、附加目录库和附加依赖项不然容易报缺失头文件(1)(2)(3)2.项目 : error PRJ0002 : 结果 31 (从“C:\Program Files\MicrosoftSDKs\Windows\v6.0A\bin\mt.exe”返回)在网上没找到确切答案后来自己消失了说是可能跟内存占用有关?可以关掉防火墙、杀毒软件Softwar... [阅读全文]

如何使用qq空间代码:winqemu代码的使用

qemu是个不错开源虚拟机软件Software最近刚好需要使用它发现原来已经有人将的移植到了vs2008下项目主页在http://sf.net/projects/winqemu/作者博客在http://blog.csdn.net/celestialwy 先在项目主页下了其提供了0.10.2版本代码解压后直接编译不少: ------ 已启动生成: 项目: WinQemu, 配置: Debug Win... [阅读全文]

wince:wince 读取DSK容量

最近我们测A4 系统信息同事读取Flash 容量大小总有点问题有时候出现误差很大可看看wince系统读出来值很正确于是我就找到控制面板里那些代码(D:\WINCE600\PUBLIC\WCESHELLFE\OAK\CTLPNL\STGUI)自己写了个读flash 容量测试ok,主要代码如下: void CStoragManagerTestDlg::OnBnClickedRead { // TODO... [阅读全文]

template:C++ Template Corner Cases

各位读者很抱歉这篇文章是英文我当初做笔记时候写成英文了这样才可以在同事的间交流而现在确实没时间翻译过来了还望大家理解谢谢! Following are some corner s of C template features. A lot of the text is simply extracted from "C Templates: The Complete Guide", with som... [阅读全文]

快速排序:改进过的快速排序 正好输出10个

# stdio.h # stdlib.h # time.h # N 10 # M 3 simqs( *a, n); void partqs( *a, n, k) { m=0; (n0) { m=simqs(a,n); (m=k) partqs(a+m+1,n-m-1,k-m+1); partqs(a,m-1,k); } } simqs( *a, n) { i,j,k,m,t; i=0;j... [阅读全文]

默认构造函数:C++空类的默认成员函数整理总结

Empty { public: Empty; // 缺省构造 Empty(const Empty&); // 拷贝构造 ~Empty; // 析构 Empty& operator=(const Empty&); // 赋值运算符 Empty* operator&; // 取值运算符 const Empty* operator& const; // 取值运算符 }; 例如有以下: StringB... [阅读全文]

vc6.0:VC++6.0 环境下删除自己添加的类

在VC6.0环境中添加个类的后如果发觉得不合适想要将其删除往往比较麻烦 直接删除类头文件(.h文件)和实现文件(.cpp—我不知道可不可以称其为实现文件)是不行编译时候会提示找不到“类名.cpp文”件和“类名.h文件” 经过试验我找到了下面解决思路方法(可能还有更好只是我不知道): 要在该工程对应文件夹下进行 3方面工作: 1. 修改.d... [阅读全文]

vcdll:vc中将一个独立的dll(exe) 作为资源加入资源文件中

具体如何加入、释放资源这个就不必多说了吧 加入资源:Insert-Resource-Import 要求填入类型名称随便填个即可比如“EXEANDDLL” 释放资源: //////////////////////////////////////////// // 加载资源、生成文件 //定位我们自定义资源这里我们是从本模块定位资源所以将句柄简单地置为NULL即可 HRSRC ... [阅读全文]

cf一些技巧:C++ static关键字使用时的一些窍门技巧

本文主要讲解C 关键字使用时些窍门技巧需要避免使用方法 、基本语法 变量存在于全局静态数据区系统自动化为0在整个运行过程中只化次只有个内存地址具体还有些细节想必大家已经在其他书籍上看过了这里不再多提 2、使用窍门技巧 1、在不增加其他变量情况下优化 先看如下代码假设我们使用这个计算最大整数大小: MaxInt { nFunRet = 0; nTemp = 0; while (TRUE) {... [阅读全文]

callback:C++中回调(CallBack)的使用思路方法

回调是个很有用也很重要概念当发生某种事件时系统或其他将会自动你定义段回调在windows编程使用场合很多比如Hook回调:MouseProc,GetMsgProc以及EnumWindows,DrawState回调等等还有很多系统级回调过程 般情况下, 我们使用回调基本都是采用C语言风格. 这里介绍种C风格回调对象思路方法. 采用template实现. view plaincopy to clipb... [阅读全文]

java对象复制:复制对象时勿忘其每一个成分

从条款05中我们知道编译器为你提供了些默认copying,而在某些情况下,我们不想要编译器提供版本,我们自定义copying构造和copying assign操作,这个时候你无形的中惹恼了我们编译器,你不用它东西,它很"生气",于是它就开始复仇:你实现代码几乎出错时,它就是不告诉你.这里考虑个类用来表现个应用用事件类型Event: Event{ public: Event( id):eventI... [阅读全文]

堆和栈的区别:a++和++a的压栈

# "stdafx.h" _t( argc, _TCHAR* argv) { a = 1; prf("b = %d\tc = %d\td = %d\te = %d\tf = %d\tg = %d\n", a, a, a, a, a, a ); system("pause"); 0; } # "stdafx.h" _t( argc, _TCHAR* argv) { a = 1; prf("... [阅读全文]

safearray:用SAFEARRAY封装POST数据

使用SAFEARRAY 封装数据进行POST. SAFEARRAY * psa; //定义safe.gif' / SAFEARRAYBOUND rgsabound[1]; //根据维数来定义几个元素本例是个维 rgsabound[0].cElements = postLen; //元素个数 rgsabound[0].lLbound = 0; //起始下标 psa = SafeArrayCreate... [阅读全文]

virtual构造函数:绝不在构造和析构过程中调用virtual函数

内容: 我以个书上例子开始:个正规点大型超市般都有个管理进货、卖出、订货等交易动作管理系统,该系统必须维护个交易操作记录,方便查询,故每进行笔交易时,需要把此项交易信息log入数据管理系统进行存储,这里我们有了个交易类Transaction,但交易有很多种类型所以我们log它们时候需要virtual来实现,故你很容易写出如下代码: Transaction{ public: Transaction... [阅读全文]

运算符重载:小于号重载须注意的问题

这是今天写中遇到两个诡异问题我 IDE 是 VC2005 ExpressiEdition 第个问题是有关 map 话不多说以下 20 多行 C 代码重现了我遇到问题: # iostream # map using std; struct S { x, y; S( xx, yy): x(xx), y(yy) {} bool operator (const S& s) const { x ... [阅读全文]

delete出错:delete释放空间时出错的原因!

*a= [10]; ...... delete a; ---------------------------------------------------------- 当后面delete a;出现情况大致有: 1 首地址a被你有意无意更改了如:a的类; 2 变量作用域问题如:你是在个体中却在另个体中delete这时a变量已经失效了这时delete会出现a为不认识标识符; 3 先前已经dele... [阅读全文]

windowsce6.0:Still Image Capture under Windows CE 6.0

为了能在Windows CE 6.0上使用Direct Show进行摄像头视频御览以及抓取静态图,特地学习了阵子direct show原理,又买了本陆其明老师书.现将我经验和遇到困难和大家起分享.、准备工作1.配置你VC开发环境2.编译生成你自己strmbase.lib本来直以为可以用PB5.0或者6.0中Direct Show SDK中strmbase.lib静态链结到项目中,可是最终都会有LN... [阅读全文]

c语言中指针:C++中指针入门

什么是指针? 其实指针就像是其它变量样所区别是般变量包含是实际真实数据而指针是个指示器它告诉在内存哪块区域可以找到数据这是个非常重要概念有很多和算法都是围绕指针而设计如链表 开始学习 如何定义个指针呢?就像你定义个其它变量样只不过你要在指针名字前加上个星号我们来看个例子:下面这个定义了两个指针它们都是指向整型数据 * pNumberOne; * pNumberTwo; 你注意到在两个变量名前&ld... [阅读全文]

虚拟内存太低怎么办:C++ /C内存耗尽如何办?

如果在申请动态内存时找不到足够大内存块malloc 和 将返回NULL 指针宣告内存申请失败通常有 3种方式处理“内存耗尽”问题 (1)判断指针是否为NULL如果是则马上用 语句终止本例如: void Func(void) { A *a = A; (a NULL) { ; } … } (2)判断指针是否为NULL如果是则马上用exit(1)终止整个运行例如... [阅读全文]

内存常见故障:C++常见的内存错误及其对策

发生内存是件非常麻烦事情编译器不能自动发现这些通常是在运行时才能捕捉到而这些大多没有明显症状时隐时现增加了改错难度有时用户怒气冲冲地把你找来却没有发生任何问题你走又发作了常见内存及其对策如下: 内存分配未成功却使用了它 编程新手常犯这种他们没有意识到内存分配会不成功常用解决办法是在使用内存的前检查指针是否为NULL如果指针p 是参数那么在入口处用assert(p!=NULL)进行检查如果是用ma... [阅读全文]
< 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 > >> 共1813条 分61页