- 博客(22)
- 资源 (4)
- 收藏
- 关注
转载 转换指南: 将程序从托管扩展 C++ 迁移到 C++/CLI
转换指南: 将程序从托管扩展 C++ 迁移到 C++/CLIVisual Studio 2005 发布日期 : 5/31/2005 | 更新日期 : 5/31/2005Stanley B. Lippman Microsoft Corporation适用于:C++/CLI 第二版ISO-C++摘要 :C++/CLI代表 ISO-C++标准语言的
2011-12-23 16:18:39
1580
转载 从C++到C++/CLI
从C++到C++/CLI 刘未鹏(pongba) /文 看起来只是在C++后面多写了一个“/CLI”,然而其意义却远不止于此,google的c++.moderated版上为此还发起了数星期的讨论,在国内大部分人对C++/CLI还不是很了解的情况下,google上面已然硝烟四起... 就像我们作出其它任何选择一样,在选择之前最重要的是先要清楚为什么作出这样或那样的选择—
2011-12-23 16:16:15
922
原创 EventHandler
/**.h****/public ref class ReportEventArgs{public: ReportEventArgs(); array ^ ReportArray;}; public ref class MyClass{private: static ReportEventArgs ^ m_pEventReportArgs
2011-12-22 09:09:45
659
转载 C++/CLI(八):类的分类与定义
C++/CLI中可以定义 两种类型的struct和class类型,一种为数值类(或数值结构):value class(value struct);一种是引用类(或引用结构):ref class(ref value)。与本地C++一样,class与struct的区别在于前者的成员默认为私有,后者默认为公有。下面仅以类来介绍,内容同样适用于结构。value class与ref class组成的是双
2011-12-02 16:11:29
2081
转载 C++/CLI(七):类函数
类函数是C++/CLI中引入的新概念,其功能类似于函数模板,但原理上却迥然不同。使用函数模板时,编译器根据模板生成函数源代码,然后将其与其它代码 一起编译。这种方法可能会产生许多函数,从而使得生成模块的体积增加,这就是所谓的“代码膨胀”。类函数与之不同,类函数本身将被编译,在调用类函数时, 实际类型在运行时取代了类函数的类型形参,这不会导致新增代码的问题。一、类函数的定义类函数与普通函数的
2011-12-02 16:10:43
1936
转载 C++/CLI(六):函数
C++/CLI中函数的工作方式与ISO/ANSI C++完全相同,但由于在C++/CLI中用跟踪句柄和跟踪引用替代了本地指针和引用,因此也带来一些变化,主要包括CLR程序中函数的形参与返回值可以是数值类型、跟踪句柄、跟踪引用和内部指针。如果某个形参是CLR数组,程序不需要另外的参数指定其大小,因为数组大小在属性Length中。在C++/CLI程序中,不能像C++一样进行
2011-12-02 16:10:02
1278
转载 C++/CLI(五):跟踪句柄、跟踪引用及内部指针
与本地C++自己维护堆不同,C++/CLI中动态分配的内存是由CLR来维护的。当不需要堆时,CLR自动将其删除回收,同时CLR还能自动地压缩内存堆以避免产生不必要的内存碎片。这种机制能够避免内存泄露和内存碎片,被称为垃圾回收,而由CLR管理的这种堆被称为CLR堆。它由操作符gcnew创建。由于垃圾回收机制会改变堆中对象的地址,因此不能在CLR堆中使用普通C++指针,因为如果指针指向的对象地址发
2011-12-02 16:09:18
3262
转载 C++/CLI(四):字符串
C++/CLI字符串(Unicode字符组成的字符串)是指在System命名空间中定义的String类,即由System:Char类型的字符序列组成的字符串。它包含大量强大的功能,使得字符串的处理非常容易。创建一个String对象的方法如下例所示:System::String^ saying = L"Many hands make light work.";跟踪句柄saying用于访问St
2011-12-02 16:08:30
2178
转载 C++/CLI(二):控制与循环
一、基本控制结构ISO/ANSI C++中的控制与循环全部适用于C++/CLI。下例展示了C++/CLI控制台程序中的控制循环:例子:基本循环控制- - - - - - - - - - - - - - - - > [Ex3_15.cpp] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2011-12-02 16:06:06
875
转载 C++/CLI(一):基础
相比于ISO/ANSI C++而言,C++/CLI进行了大量的扩充,并且提供了大量的附加功能。主要包括:在C++/CLI程序中,所有ISO/ANSI基本数据类型都可以使用,但在一些特殊的上下文环境中,它们具有一些额外属性;在控制台程序中,C++/CLI对键盘和命令行输出提供了自己的机制;C++/CLI中引入了safe_cast运算符,确保强制类型转换操作能够生成可检验的
2011-12-02 16:02:58
1248
转载 C++/CLI(三):数组
要学习数组,必须先了解跟踪句柄。一、跟踪句柄跟踪句柄类似于本地C++指针,但也有很大区别。跟踪句柄确实存储着某个对象的地址,但当CLR压缩堆过程中改变了该对象的地址,则垃圾回收器自动更新句柄所包含的地址。我们不能像本地指针那样用跟踪句柄来执行地址的算术运算,也不允许对跟踪句柄进行强制类型转换。在 CLR堆中创建的对象必须被跟踪句柄引用。所有属于引用类型的对象都存储在堆中,因此为引用这些
2011-12-02 16:01:24
4595
转载 编译器将“*”替换为“^”以继续进行分析
今天起想自己编写一个股票交易分析的软件,准备采用 CLR 支持库,结果上来就碰了钉子,打开文件对话框编程没有办法执行,总是出错。下面的例子是HM Deitel父子出版的 Visual C++ .net 高级编程中的代码--------------------------------Windows::Forms::OpenFileDialog *openDlg = new OpenFil
2011-12-01 11:20:12
1592
转载 详解VS2005模块定义文件(.def)
从VS2005MSDN上翻译的.def文件定义:1、模块定义 (.def) 文件 模块定义 (.def) 文件为链接器提供有关被链接程序的导出、属性及其他方面的信息。生成 DLL 时,.def 文件最有用。由于存在可代替模块定义语句使用的链接器选项,通常不需要 .def 文件。也可以将__declspec(dllexp
2011-12-01 11:11:04
1642
转载 Visual C++ .NET编程:托管C++概述
2000年6月,Microsoft推出了“Microsoft.NET下一代互联网软件和服务战略”,引起IT行业的广泛关注。2000年9月,Microsoft在旧金山发布了Enterprise 2000。同月,Microsoft原总裁兼首席执行官鲍尔默来到中国就“下一代互联网”的主题进行演讲,在中国掀起了一股“.NET旋风”。2000年11月,Microsoft在Comdex计算机大展上发布了Vis
2011-12-01 09:34:38
936
转载 C++/CLI编程一些基本概念
这里列举了一些我认为C++/CLI编程的需要知道一些基本概念非安全代码(Unsafe code):一般而言,用VB.NET, C#编译成的代码是安全代码,这里的安全是指编译器本身的能力而言。比如对同样的一个C#程序,如果使用/unsafe选项进行编译的话,会产生如下的directive:.assembly assemblyNameXXX{// 涉及到安全许可时,忽略代码校验 .
2011-12-01 09:29:20
2051
原创 在VS2005中创建CLR类库,可以在C#中直接调用
1. 一般使用两种办法导出函数: 1)用__declspec(dllexport) 2)用def文件经过试验第一种,总是无法找到函数入口点,第二种则可以。2. def写法:LIBRARY "PLCClient"EXPORTS Connect @1 PLCClient是dll名,Connect是函数名,空格后@,数字1是顺序3.链接d
2011-11-30 11:47:26
1377
转载 #pragma once 与 #ifndef 解析
为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifndef方式,一种是#pragma once方式。在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。 方式一: #ifndef __SOMEFILE_H__ #define __SOMEFILE_H__ ... ... // 声明、定义语句
2011-11-23 16:10:16
491
原创 WinCE6 安装顺序
<br />1.安装VS2005,假如安装有更高版本的VS,先卸掉吧。<br />2.安装VS2005 SP1.(假如是VISTA,还有装个sp1 for vista, win7的估计也可以用sp1 for vista,还是网上再搜一下吧)<br />3.安装WINCE6.<br />4.安装WINCE6 Service pack 1.<br />其中VS2005和WINCE6都是.iso文件,先安装个DT吧。<br /> <br />安装WINCE6时CPU类型选择:X86。因为我们用的是EBOX2300
2010-09-19 11:09:00
504
原创 CE5的安装
安装CE5之前需要安装.NET Framework 1.1, 而装.NET Framework 1.1之前要先装Microsoft® .NET Framework 1.1 版可再发行组件包,最后装上Microsoft .NET Framework 1.1 Service Pack 1。下载地址:.NET Framework 1.1 http://www.microsoft.co
2010-03-23 14:42:00
661
原创 2G sandisk iNand的特殊情况
接触过SD协议的都知道,2G SD是一个过渡产品,各厂商在此容量上的register定义会有微妙的不同,但BSP的CODE没有发现此区别,因此在使用时有个地方需要修改。 一般厂商会将2G(及以下)的sector counter定义成0,而2G sandisk iNand却不是这样,它是按照BYTES来定义的。可恨的是card controller在寻址时却是BYTE,这样ca
2010-03-23 13:47:00
628
转载 Wince下USB驱动结构
随着USB设备的不断增加,我们这些开发人员也就多了对USB设备进行驱动程序开发的工作。但是对于很多初学者来说,存在以下三个困难: 一是对WinCE的驱动程序结构了解得太少,没办法得心应手的专注于驱动程序的开发工作; 二是对WinCE自带的USB驱动程序的例子没有弄懂,看到一大堆文件夹结构和源程序思维混乱; 三是几乎没有什么中文的参考资料,不知如
2010-03-22 15:19:00
700
转载 USB HID描述符
在USB中,USB HOST是通过各种描述符来识别设备的,有设备描述符,配置描述符,接口描述符,端点描述符,字符串描述符,报告描述符等等。USB报告描述符(Report Descriptor)是HID设备中的一个描述符,它是比较复杂的一个描述符。 USB HID设备是通过报告来给传送数据的,报告有输入报告和输出报告。输入报告是USB设备发送给主机的,例如USB鼠标将鼠标移动和鼠标点击等信
2010-03-22 15:14:00
1689
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人