如何解决VB6在WIN7上运行时提示“对象库未注册”的问题

还是再次印证了GOOGLE比BAIDU好用多了。 阅读更多...

如何用VB6 检测文件是否存在

本来很简单,一般人baidu过都会,基本用的都是Dir这个命令,我原来也是。

但后面实际运行出现了点问题,偶尔会出现错误,查了一下人家解释为“DIR 函数在调用无权限的目录以及文件时会产生错误”。

发现原来有缺陷,想用On Error这样来屏蔽又有点不甘心,然后google了一下,发现又是英文网站解决了,请到下面原文去看:

http://www.vbforums.com/showthread.php?349990-Classic-VB-How-can-I-check-if-a-file-exists

人家那叫头脑风暴,一个人提出,n个人提出不同的实现方法。

最后我选择了一种变成模块的方式,支持“*”通配符,以下是代码,也是抄的: 阅读更多...

STM32 仿真检测

目的与引用的文章开始那段类似(地址:http://blog.csdn.net/billy145533/article/details/49706783):
“出于调试的目的,在仿真的时候经常要改变程序的逻辑以方便测试,不幸的是,我是一个不甚严谨的人,每次测试完,一些改动忘记改回去就发布了,经常被测试退回。
于是,我想到是否能利用stm32中的特殊寄存器判断是否在调试状态,如果是,引入我需要测试的部分,否则自动跳过,这样发布就不会出现发布调试版本的问题。有人会说,测试用debug,发布使用release,我比较懒,不想切来切去。 ”

但是可惜,这篇文章到最后貌似也没有非常明确地提到如何使用,所以只能最后祭出大杀招:google+英文关键字搜索。

果然很快就从 https://community.st.com/thread/36036-how-to-check-at-runtime-if-a-debugger-is-connected 这里找到这里:

https://community.st.com/thread/25890?commentID=69875#comment-69875

然后核心就是一句话:

debugDetect = ( CoreDebug->DHCSR & CoreDebug_DHCSR_C_DEBUGEN_Msk );

果然还是英文搜索比较靠谱。

如果想仔细研究,可以看看寄存器的详细定义:
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0337e/CEGCJAHJ.html

去伪存精——VB6上真实可用的UTF-8编码URLencode函数

首先,要扫盲一下,什么是URLencode,网上搜索一下规则就可以知道:

1。字母,数字,连字符不变。
2。空格转换成加号。
3。其他所有的字符转换成用百分号表示,后跟字符的两位十六进制编码。

关于UTF-8与GB2312和GBK的关系就不详说了,就只是网页编码,这次我们需要的是根据UTF-8来进行编码。
通常在网上传输参数时有用,因为如果字符串中包含“&”或"%"这些字符,就会被错误解释整串字符,所以需要重新编码再解码。
如果在VB上想实现,百度搜搜一堆,但实际没有一个可用,真的,没有一个可用!
先说说搜索出来最多的,是这个: 阅读更多...

信用卡手续费换算为贷款年利率

最近因为结婚买房子、筹办婚礼等花了不少的钱,信用卡都快刷爆了,账单2万多,银行发信息过来说可以分期还款,12期,每期手续费为总额的0.67% 。粗算一下0.67% × 12= 8.04 % ,貌似也不高嘛,就办了。
但前几天某个很会算的同事给我揭示了信用卡分期付款手续费的秘密,我在网上查了一下,果然:
如何计算实际的年利率,在网上可以查到利用excel的rate公式,就拿我这个例子,12期,如果按总贷款额为20000,总共要给银行归还20000*(1+0.0067*12)=21608, 则每月应该银行交21608/12=1800.67 。利用rate公式则为rate(12,-1800.67,20000) (12即12期,-1800.67为每期要缴数,要为负,20000为贷款额),在excel里马上可以算出为1.204% ,这个是月利率,换为年利率则再乘以12,为14.45% !!!
是不是觉得非常不可思议?为了验证这个利率的准确性,我们可以到新浪的房贷计算器上面去计算:
http://finance.sina.com.cn/calc/house_loan.html
选择商业贷款,金额2万元,期限1年,利率直接输入14.45%,选择“等额本息”,点“计算”,结果马上就可以出来了,可以看到每月偿还本息为1799.98,即等同于1800.67了,可以确认该利率无误了。
所以在这里提醒一下各位,别被这个看起来很低的“手续费”给蒙蔽了!
网上换算的网页可以给大家推荐一个:
http://www.masterhsiao.com.tw/Rate/Rate.htm

C语言与VB定义变量类型的差异

因本人开始从事的就是C语言的开发,所以对于C语言还是比较熟悉的,在定义变量时,同时定义几个变量可以这样定义:

unsigned int x,y,z;

这样就可以把x,y,z都定义为无符号整型的数据类型。

但当我想把类似的方法放到VB时,以为这样定义:

Dim x,y,z as integer

就可以把x,y,z都定义为整型。

但实际我发现错了,经过我的跟踪调试发现,这样的定义只是把z给定义为整型了,x与y则被定义为可变类型variant

网上搜索了一下证实了我自己的想法。

正确的定义方法应为:

Dim x as integer , y as integer , z as integer

不能偷懒,希望对某些从C语言编程出身的网友会有所帮助。

[转]分享:如何删除被占用的串口号

如果一直使用串口调试的网友肯定知道,如果你使用的是USB转串口的设备,而且还用过USBHUB转的话,那前面的串口基本已经占完了,新设备的端口号可能就要从几十开始,有时候有些调试软件不支持开那么高的串口号,很麻烦。

后来我从网上搜到了如何删掉这些多余被占用的串口号的方法,特意与大家分享一下:

通过删除注册表中的一个数值项来清除这些配置:在“运行”对话框中输入 “regedit”进入注册表;然后进入 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control \COM Name Arbiter这时我们可以找到该数值项:ComDB,它的值代表目前使用中的串口端号。比如1d,它的二进制:0001 1101,则从右往左数代表第1,3,4,5端口被占用。这样我们只需要把ComDB这个数据项删除,关闭注册表(不用重启电脑)即可。

避免VLOOKUP函数返回#N/A错误的方法

适用对象,已经会使用VLOOKUP函数的人群。

很简单,这样就可以了,sample:

EXCEL 2007版本:

=IFERROR(VLOOKUP(D3,A1:B61,2,),"无对应值")

EXCEL 2003版本:

=IF(ISNA(VLOOKUP(D3,A1:B61,2,)),"无对应值",VLOOKUP(D3,A1:B61,2,))

“无对应值”可以改成空的“”或者其他,自由发挥。

"我叫MT"符文数据(可复制版本)

不知道为什么,现在网上的攻略、数据,虽然作者是先做到excel里的,但最后只以截图形式发布,很不方便。
今天我就把"我叫MT"这个游戏的符文数据重新做出,变成可复制的文本信息,希望大家有用吧。 阅读更多...

[转]c:\windows\sytem32\ieframe.dll\1未找到'的解决方法

C:\windows\sytem32\ieframe.dll\1未找到'的解决方法

这几天我的VB一直不能加载ieframe.dll,一加载就说c:\windows\sytem32\ieframe.dll\1找不到,然后就出错了。一直没有搞明白,今天终于在网上找到了解决的办法,原因是由于ie7.0的bug引起的。
这个ieframe.dll是vb中WebBrowser 调用的控件,当你用vb再次打开你的工程之后,
就可以发现以前的WebBrowser 控件没有了。而且再次加载也是不能的了。

现贴上来与大家共同分享,我想如果你安装了IE7.0浏览器可能很多都会遇到这样的问题的,值得收藏。

把以下内容做成一个注册表文件IE7.reg,导入注册表即可:

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\TypeLib\{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}]
[HKEY_CLASSES_ROOT\TypeLib\{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}\1.1]
@="Microsoft Internet Controls"
[HKEY_CLASSES_ROOT\TypeLib\{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}\1.1\0]
[HKEY_CLASSES_ROOT\TypeLib\{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}\1.1\0\win32]
@="C:\\WINDOWS\\system32\\ieframe.dll"

好了,当你已经导入 注册表后,再按下面的方法,就可以加载Microsoft Internet Controls了:

在工具箱中点击鼠标右键→选中“ 部件” → 复选Microsoft InternetControls → 然后点击“ 确定” 键即可。
这样在工具箱中即可看到WebBrowser控件,在窗体中新建一个WebBrowser控件即可!

附我自己做好的reg文件:

ieframe.dll.IE7.reg