文号
t39232
阅读
7874
回复
10
收藏
2
VB2010与C DLL混合编程操作位图
2012/01/03
IP:广东
novakon作者
15年0个月前IP:未同步
350350
1楼
引用
评论
novakon作者
15年0个月前IP:未同步
350804
2楼
在VB2010下编译,默认会出现pInvokestackimbalance错误,在菜单“调试”“异常”处,把该错误的勾打掉即可,以后调试不会throw出这个错误。
引用
评论
14年11个月前IP:未同步
357282
3楼
回 楼主(novakon) 的帖子
请使用byte/int8类型……就没有那么多麻烦的事情了
IA32 CPU中,mul指令远比add慢,imul则更慢。请使用加法运算。
对于溢出问题。
00FFh+00FFh=01FEh
无所谓小于零
有没有符号不用太在意,除了带浮号运算指令外,运算的规则都是一样的,只是表达规则不一样罢了。
最后可以这样:
jo OnOverflow
ret
OnOverflow:
mov al,0;使用哪个reg取决于编译生成的出口是哪
ret
引用
评论
novakon作者
14年11个月前IP:未同步
366085
4楼
回 3楼(phpskycn) 的帖子
溢出问题:矩阵运算时结果可能小于零,可能会返回8000H...8001H...之类的值
byte/int8:运算、赋值的时候如果大于0x00FF不会自动变成00FF,而且会改变前后的byte(莫非是我SB了?
mul和add的问题:这是一个演示程序,实际使用时可能会是 r = r*37801>>16这样的形式(实际运算时数字会比较大所以不用byte)。而且即使写r*2,编译器也会把*2变成add或者左移运算。

OnOverflow:事实上使用跳转会减慢程序计算速度,我会再改一个没有IF语句的版本出来。
引用
评论
14年11个月前IP:未同步
366639
5楼
回 4楼(novakon) 的帖子
引用第4楼novakon于2012-02-11 17:16发表的 回 3楼(phpskycn) 的帖子 :
溢出问题:矩阵运算时结果可能小于零,可能会返回8000H...8001H...之类的值
byte/int8:运算、赋值的时候如果大于0x00FF不会自动变成00FF,而且会改变前后的byte(莫非是我SB了?
mul和add的问题:这是一个演示程序,实际使用时可能会是 r = r*37801>>16这样的形式(实际运算时数字会比较大所以不用byte)。而且即使写r*2,编译器也会把*2变成add或者左移运算。

OnOverflow:事实上使用跳转会减慢程序计算速度,我会再改一个没有IF语句的版本出来。

应该不会改变前后字节吧,IA32有一套专门操作字节的指令。
我的意思是……一切都按无符号数考虑。。。这个时候FFH=255D而不是-01D
引用
评论
novakon作者
14年11个月前IP:未同步
366980
6楼
回 5楼(phpskycn) 的帖子
请问无符号数计算2-3=0吗?
引用
评论
14年10个月前IP:未同步
368601
7楼
回 6楼(novakon) 的帖子
由于有无符号运算用的电路相同
02H-03H=FFH
有符号数-1D,无符号数255D
我的意思是,如果全盘按照无符号数处理,使用字节传送,传来的变量范围就是0D-255D,不需要专门一个函数处理
这个函数需要消耗不少资源
引用
评论
novakon作者
14年10个月前IP:未同步
368772
8楼
回 7楼(phpskycn) 的帖子
那么我希望2-3=0为黑色而不是白色,怎么办呢
引用
评论
14年10个月前IP:未同步
368778
9楼
回 8楼(novakon) 的帖子
如果一定要使用减法因而必须使用有符号数,我提出的那些就可以推翻
我并不理解代码实际用途也不知道可能发生的其他情况
引用
评论
novakon作者
14年6个月前IP:未同步
410064
10楼
回 9楼(phpskycn) 的帖子
图像处理输出的结果要显示在屏幕上,-1显示在屏幕上就应该为0(黑色),至少不能比黑色更亮
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的