• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 一个简单的SafeArray封装类,还请大家参考与指教

一个简单的SafeArray封装类,还请大家参考与指教

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了safearray,safearray inp,vlax make safearray,vlax safearray,vlax safearray fill等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 一个简单的SafeArray封装类,还请大家参考与指教
描述:

最近遇到使用SAFEARRAY比较多,因为是三维图形方面,用到的SAFEARRAY一般都是一维的数组,元素个数为1(表示参数曲线),2(表示参数曲面),3(表示三维点).于是写了一个针对这方面的类.
  我想值得讨论是地方有两个, 一是SAFEARRAY的使用,一就是关于通用类编写的一些准则(比如说实现正规函数,转型,以及错误处理等等),希望大家能够批评指教.
#pragma once
#include <assert.h>
#include <oleauto.h>
#include <math.h>
const double E_PRECISION = 0.0001;
template<int dimension>
class CDbSafeArray
{
public:
//constructor
explicit CDbSafeArray(double t);
CDbSafeArray(double u,double v);
CDbSafeArray(double x,double y,double z);
CDbSafeArray(const SAFEARRAY* psa);
//copy constructor
CDbSafeArray(const CDbSafeArray& rhs);
~CDbSafeArray();
public:
//operator override
SAFEARRAY** operator&();
CDbSafeArray& operator = (const CDbSafeArray& rhs);
bool Equal(double dbleft,double dbright);
bool operator == ( const CDbSafeArray& rhs);
bool operator != ( const CDbSafeArray& rhs);
public:
//data access
//for parameterized curve  dimension = 1
HRESULT get_T(double& T);
HRESULT set_T(double T);
//for parameterized surface dimension = 2
HRESULT get_U(double& U);
HRESULT set_U(double U);
HRESULT get_V(double& V);
HRESULT set_V(double V);
//for 3d point dimension = 3
HRESULT get_X(double& X);
HRESULT set_X(double X);
HRESULT get_Y(double& Y);
HRESULT set_Y(double Y);
HRESULT get_Z(double& Z);
HRESULT set_Z(double Z);
//
HRESULT setdata(double T);
HRESULT getdata(double& T);
HRESULT setdata(double U,double V);
HRESULT getdata(double& U,double& V);
HRESULT setdata(double X,double Y, double Z);
HRESULT getdata(double& X,double& Y, double& Z);
public:
//safearray
SAFEARRAY* m_psa;
private:
//the length of the array(only 1,2,3 allowed)
int m_idimension;
};


解决方案1:

呵呵,看来有共同的爱好,喜欢写些基础的类.
我想这是在更深层次上学习模板的好办法.
我也做了个CSafeArray,比起CComSafeArray,它提供了对自定义类型数组的支持,交流一下.
http://IUnknown.6to23.com/

解决方案2:

不错,鼎
不过呢,MS都有线程的封装类,何必这么辛苦呢

解决方案3:

不错,支持+收藏

解决方案4:

COleSafeArray
The COleSafeArray class is used for working with arrays of arbitrary types and dimensions. COleSafeArray provides implementations of the COM SAFEARRAY member functions, as well as a set of member functions specifically designed for one-dimensional arrays of bytes. COleSafeArray derives from the COM VARIANT structure.


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 关于SAFEARRAY的释放问题,高手请进
  • VCCOM组件想通过一个事件传递一个Safearray数组如何传递?
  • 请问SAFEARRAY怎么操作?
  • 简单问题一个标准函数SafeArrayGetElement,不知道什么意思
  • [VC->VB@DLL]如何给SAFEARRAY类型的参数传值?
  • 在vc中使用SAFEARRAY的问题??急,大侠们一定要帮帮忙啊!!!!
  • 关于safeArray使用的问题,在线等待,解决给分。
  • 高手帮我看看,关于安全数组(SafeArray)使用问题
  • 关于SAFEARRAY数组的释放问题
  • 自定义类型的SafeArray创建

相关文章

  • 2017-06-05 蔡鸟求救,main函数中argc是怎么赋值的?怎么会有判断条件argc<=1的?多谢!
  • 2017-06-05 動態使用dll里的函數的問題
  • 2017-06-05 如何把WINDOWS系统中的进程dump成可执行文件?
  • 2017-06-05 启动线程失败,不知如何是好。
  • 2017-06-04 关于BeforeNavigate2!!!
  • 2017-06-04 自动注册控件
  • 2017-06-05 请教关于操作系统的页表
  • 2017-06-04 ATL建立的dll中如何得到使用自己的主应用程序的主窗口句柄,加分中!
  • 2017-06-04 关于在WIN98上使用MTS中导出的组件包问题!急!送分!不够再给!
  • 2017-06-05 求一笔刷CBrush的例子,本人是菜鸟,希望能从怎么建工程开始讲。

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • javascript中调用activex控件问题
    • 求进程间通信的解决方案
    • 1000¥求助!实现asp调用VC函数并返回一个字符串!
    • MFC控件安全性问题
    • 菜鸟的问题,请赐教
    • 在对话框中怎么样才能显示powerpoint呢?
    • 跪求高手指点!往EXCEL里插入一个自己写的ACTIVE控件,怎么不能响应按键消息
    • 进程与进程之间如何传递消息?
    • 请问:用ATL作的DLL用VB调用,如何保存图标、图片、字体、颜色,并且是永久存储
    • 怎么用VC做的主程序控制其它程序做的窗口程序的位置?类似于MDI

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有