vb及vc的程序接口编制问题

余山水 2000-08-28 04:43:00
我用vc编制的控件接口变量为VARIANT FAR *xyArray,而在vb中我定义了一个数组dim k (1to 200) as Variant,载vb 中怎样将这个数组赋给这个变量.
多谢
...全文
93 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
celxta 2000-08-28
  • 打赏
  • 举报
回复
用指针,但是Variant可能要指明大小
vb编程常用命令集锦 vb编程常用命令集锦 API函数声明 数据类型与"类型安全" 常 数 结 构 小 结 一些API函数集: 控件与消息函数、硬件与系统函数、菜单函数、绘图函数 什么是API 首先,有必要向大家讲一讲,什么是API。所谓API本来是为C和C++程序员写的。API说来说去,就是一种函数,他们包含在一个附加名为DLL的动态连接库文件中。用标准的定义来讲,API就是Windows的32位应用程序编程接口,是一系列很复杂的函数,消息和结构,它使编程人员可以用不同类型的编程语言编制出的运行在Windows95和Windows NT操作系统上的应用程序。可以说,如果你曾经学过VC,那么API对你来说不是什么问题。但是如果你没有学过VC,或者你对Windows95的结构体系不熟悉,那么可以说,学习API将是一件很辛苦的事情。 如果你打开WINDOWS的SYSTEM文件夹,你可以发现其中有很多附加名为DLL的文件。一个DLL中包含的API函数并不只是一个,数十个,甚至是数百个。我们能都掌握它嘛?回答是否定的∶不可能掌握。但实际上,我们真的没必要都掌握,只要重点掌握Windos系统本身自带的API函数就可以了。但,在其中还应当抛开掉同VB本身自有的函数重复的函数。如,VB 的etAttr命令可以获得文件属性,SetAttr可以设置文件属性。对API来讲也有对应的函数 GetFileAttributes和SetFileAttributes,性能都差不多。如此地一算,剩下来的也就5、600个。是的,也不少。但,我可以敢跟你说,只要你熟悉地掌握100个,那么你的编程水平比现在高出至少要两倍。尽管人们说VB和WINDOWS具有密切的关系,但我认为,API更接近 WINDOWS。如果你学会了API,首要的收获便是对WINDOWS体系结构的认识。这个收获是来自不易的。
有过编程经验的人都知道,编写打印模块是非常头疼的事,本组件针对上述情况,作者根据自已在软件开发过程中积累的经验编制了一个通用的打印组件(ActiveX DLL),这个组件可用于软件开发中的打印模块的二次开发,它可实现1毫米精度的定位打印,可以完成各种类型报表的设计并打印,支持表格打印、多页打印、资料发票套打等。组件提供的接口允许程序员控制设计的打印模板中的各个对象的属性,在程序中就可以完成所在的数据处理,支持数据的合计值、平均值等操作。提供了打印定位微调等接口控制(软件用户自己就可以不同的打印机设置微调值,避免了常规要由程序员上门调试打印位置,有时还要根据不同的打印机更改源码的麻烦),实现对各种纸张及票据的精确定位打印,支持的打印对象除了文本文字以外,还支持直线、矩形、圆、填充矩形、填充圆、图象等的打印。 该组件库内嵌的打印预览功能,随时可以将程序对报表处理的情况进行实时预览。组件库内嵌的报表模板设计器,可以方便快速的设计出各种类型报表的模板,设计过程采用先进的所见即所得的方式,让您使用起来更加得心应手,报表可以由程序员设计也可以交由用户自己设计, 该组件支持VBVC等开发工具,并提供了相关的示例工程源代码。 作者:罗伟 Email:mr_luowei@163.com
目前市场上的加密锁大致分为两种类型:带CPU加密锁,不带CPU的加密锁。前者拥有计算能力,对加密数据、过程数据、通讯接口等可以实施动态密文处理,因此带CPU的加密锁也被演化出了多种多样的加密形式:密文校验、自定义算法、程序移植等等。而不带CPU加密锁相对简单,加密强度较低,成本低廉! 加密锁的克隆 不带CPU加密锁实际上是一个外接的存储单元,用户在使用了正确的方法后可以与内部存储交换数据,以达到加密的目的。这种加密锁,不论其软件加密强度高低,从硬件的角度来说属于低端产品,一般加密公司的低端产品皆属此类。如果破解者找到办法可以把加密锁中的数据读出来(前提是这个硬件高手可以找到办法),那么这个加密狗也就被破掉了,制作出一个完全相同的加密锁,这种方法我们熟称为加密锁的“克隆”。加密锁客隆技术的产生使加密锁技术发展进入了一个新的时代,新类型的软件加密锁大多都有密码或硬ID号的保护,只要黑客买不到相同密码的加密锁,也就无法进行加密锁的“克隆”了。 加密锁的仿真、模拟 那么,加密锁的厂家是否可以安枕无忧了呢?不是的,解密者又找到了新的突破口。因为软件要同加密锁进行通讯,必须要通过通讯口来进行,黑客利用这一弱点编制出了加密锁仿真程序,它的工作原理是首先插上保护软件原有的软件锁运行一遍,而后台的程序会记录下所有的写入/读出的数据。然后取下加密锁,启动仿真程序,让仿真程序来模拟加密锁提供所有的数据。为此,“蓝芯金盾加密锁”采用了源程序级加密,此方法不是去判断某个值、某个字符串或数据是否正确,而是时时变化输入参数,在任何时刻没有两个相同的数据出现。 自定义算法加密锁 现在市场上还提供一种开发者可自定义算法的加密锁。开发者可以把自己的算法写入到加密锁中,在软件中调用这些算法来实现特有的计算工作。这种加密锁的实际原理是将一组数据(开发者的算法编译码)下载到加密锁的特定外部存储器,这种方法有它的局限性,因为外部存储器用专门的设备总是可以被读出来的,安全强度的高低仍然依仗在硬件读取方法的寻找上。“蓝芯金盾加密锁”可以为有特殊需要的用户编写专门的加密函数,更安全地将用户要求融入加密锁中,用户使用加密锁不是去判断加密锁是否正确,而是由加密锁实现用户软件的特定功能。 实际上加密锁的好坏仅仅是一个方面,不论加密锁提供的功能有多丰富,加密性有多好,更主要的是使用者,因为软件毕竟是要被人用的。希望所有的加密锁使用者能够更好的使用他的加密锁来完成对自己软件的保护。 加密技术 → 在很少使用的代码中调用加密锁。那么看似已破译的程序就会经常发生异常现象。 → 根据时间调用加密锁。上午调用的数据下午(或隔日)使用。破译者为了分析这种数据就要花一天或几天的时间。这就可以拖垮破译者。 → 加密锁校验函数不宜定义成一个单独函数,而宜定义成若干个小函数分散使用。 → 检查程序代码的校验和,以防非法修改。 → 以各种不同的随机访问掩护真实的加密锁访问。对随机询问的答复进行处理,但不真正使用它。 → 可在加密锁里的多个地址预先写入不同数据,校验锁时可以随机地对其中的某个地址进行校验。(如可随机产生一个数,再根据该数来决定对锁里哪个地址的值进行校验。) → 在程序中不同的地方对加密锁进行检测,即多点加密。这个方法可配合方法一使用。 → 在您程序的运行过程中,您可以定时、不定时地对加密锁进行随机检测。 → 您从加密锁取得返回数据后,并不立即判定,而是在后来才去判定是否正确;在判定加密锁错误时,并不立即提示或退出,而是在以后提示或退出或程序照常运行但出现偏差或溢出等等错误。 → 可以将加密锁返回值作为数组的索引、常量、计算单元和校验码;可以将加密锁返回值作为指针来控制程序执行或作为在不同表中跳转的索引;也可以使用加密锁返回值来加密或解密部分代码或数据。加密锁返回值使用后立即删除。 加密方式 内嵌式 这种加密方法要求具有源程序,在被加密程序中访问加密锁。加密锁的驱动光盘中提供VC\VB\VFP\Delph\PB\CB等各种言的编程接口及详细的示例供客户参考。如果您有什么特殊要求可与我们联系。 外壳式 外壳加密是一种直接对可执行文件(.exe\.com\.dll)加密的加密方法。这种方法不需要源程序,加密过程简单方便。 文件加密 在加密锁动态连接库中提供了文件加密和解密函数。函数中隐去了 HASH和RSA密码算法的实现细节,安全性极高且使用方便。用户只需输入文件名和口令即可。 反破译---文件完整性检测 用程序的完整性检测码防止文件被非法篡改 定义1:运行检测码--程序运行时的完整性检测码。 定义2:发行检测码--程序发行时的完整性检测码。 检测原理 根据程序完整性检测程序是否被修改--在程序发行前计算程序的“发行检测码”,在程序发行后运行时自动计算程序的“运行检测码”。 如果 “运行检测码” 等于 “发行检测码” 则程序完整性检测正确,程序没有被修改。 如果 “运行检测码” 不等于“发行检测码” 则程序完整性检测错误,程序被修改。

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧