用VC6编写了┅个DLLDLL中有一个函数 需要根据VB6传过来的几个数据生成一个数组,而后把数组的值传回给VB6.具体代码如下:
// 整数转BCD码4位数转存后为2个字节 比洳1234 转存后为两个字节 低字节高4位为3 低4位为4 高字节高4位为1 低4位为2
VB6中的调用代码如下:
在VC中调试此代码得到的结果是第一个值为&H34=52,第二个值是&H12=18 为什么VB6调用DLL中的此函数后,得到的结果却不对呢
另外还发现,如果把函数
VB调用此函数后的数是与函数中的赋值是一致的.
-
'整数转BCD码,4位数转存後为2个字节 比如4660=&h1234 转存后为两个字节 低字节高4位为3 低4位为4 高字节高4位为1 低4位为2
------解决方案--------------------非要“钻牛角尖”搞清楚的话在C函数中插入“__asm int 3;”然後在VS里面运行,进入调试环境按Alt+8键显示每句C对应的汇编单步执行调试。