游戏开发论坛

 找回密码
 立即注册
搜索
查看: 7053|回复: 10

[求助]对象变量或with块变量未设置

[复制链接]

8

主题

45

帖子

109

积分

注册会员

Rank: 2

积分
109
发表于 2006-8-18 10:51:00 | 显示全部楼层 |阅读模式
Public Sub Form_Paint()
     BlitRect.Right = DDSBackDesc.lWidth
     BlitRect.Bottom = DDSBackDesc.lHeight
     DDSFront.Blt BlitRect, DDSBack, BlitRect, DDBLT_WAIT     <------就是这一行
End Sub


Private Sub Form_KeyPress(KeyAscii As Integer)
     Dim sRect As RECT
     Dim hdcSrc As Long
     If KeyAscii = 27 Then
     ExitLoop = True
     'End
     ElseIf KeyAscii = vbKeyReturn Then
     DDSFront.BltToDC Picture1.hDC, sRect, sRect
     With Picture1
     '获得与主显示平面兼容的图形设备句柄
     hdcSrc = DDSFront.GetDC
     '保存图像
     Set .Picture = SaveTohBmp(hdcSrc, 0, 0, 640, 480)
     '释放图形句柄
     DDSFront.ReleaseDC hdcSrc
     SavePicture Picture1, "D:\aSunset.bmp"
     End With
     End If
    End Sub
_______________________________________________
个人感觉网上下的程序很少有能用的,即使是环境一样...

4

主题

32

帖子

32

积分

注册会员

Rank: 2

积分
32
发表于 2006-8-18 15:17:00 | 显示全部楼层

Re:[求助]对象变量或with块变量未设置

"对象变量或with块变量未设置"
一般是少了set xxx=xxx

8

主题

45

帖子

109

积分

注册会员

Rank: 2

积分
109
 楼主| 发表于 2006-8-18 15:38:00 | 显示全部楼层

Re:[求助]对象变量或with块变量未设置

http://bbs.gameres.com/showthread.asp?threadid=4545

来自这一帖

87

主题

790

帖子

806

积分

高级会员

Rank: 4

积分
806
QQ
发表于 2006-8-18 20:08:00 | 显示全部楼层

Re: Re:[求助]对象变量或with块变量未设置

griffin2006: Re:[求助]对象变量或with块变量未设置

set xxx=xxx是什么意思,跟xxx=xxx有什么不同?请高手指教。

VB中对象之间的传址要用set,而如果是变量之间赋值就不用set了.

32

主题

1583

帖子

1589

积分

金牌会员

Rank: 6Rank: 6

积分
1589
发表于 2006-8-19 11:13:00 | 显示全部楼层

Re:[求助]对象变量或with块变量未设置

一般来说应该是楼主的 DDSFront 变量是一个无效的引用。

检查代码,看看之前有没有创建好这个类的引用。

32

主题

1583

帖子

1589

积分

金牌会员

Rank: 6Rank: 6

积分
1589
发表于 2006-8-19 11:34:00 | 显示全部楼层

Re:[求助]对象变量或with块变量未设置

Dim xxx As ZZZ
Set xxx=yyy
是设定xxx为yyy的引用,在VC里面就是指针。

在这里 xxx 只是指向 yyy对象的一个指针,并不是一个完整的对象。
当然如果yyy也是一个引用(指针)的话,那么xxx指向的就是它所指向的真正的对象。

但是如果set xxx=new ZZZ 的话,这时就创建了一个真正的ZZZ型对象。

20

主题

451

帖子

470

积分

中级会员

Rank: 3Rank: 3

积分
470
发表于 2006-8-19 11:56:00 | 显示全部楼层

Re:[求助]对象变量或with块变量未设置

搞了半天原来是vb.net里的零对象引用错误,要在一个面向过程的语言里面有对象的概念……
真是麻烦~
vb.net的等号直接是传址,所以set命令似乎没什么用了

20

主题

451

帖子

470

积分

中级会员

Rank: 3Rank: 3

积分
470
发表于 2006-8-19 13:14:00 | 显示全部楼层

Re:[求助]对象变量或with块变量未设置

还是vb.net的ide好,会自动监测到有可能发生零对象引用的语句,并提示~
函数在返回值得时候,要是不是所有路径都返回值,也会提示可能会发生零对象引用
不过最好的办法还是在有可能发生零对象引用的前面加上判断:
if xxx isnot nothing then
.....
.....
end if
或者另外一种我没验证过的方法:
if xxx then
...
...
end if

15

主题

2093

帖子

2093

积分

金牌会员

Rank: 6Rank: 6

积分
2093
发表于 2006-8-19 15:20:00 | 显示全部楼层

Re:[求助]对象变量或with块变量未设置

VB6里的set是因为VB6有默认属性这个特性
所以必须要用set来区别究竟是在给对象的默认属性赋值还是在给对象变量本身赋值

VB6的写法
Text1="111111"
Set Text1=Text2

VB.net中的写法
Text1.Text="111111"
Text1=Text2

8

主题

45

帖子

109

积分

注册会员

Rank: 2

积分
109
 楼主| 发表于 2006-8-20 22:50:00 | 显示全部楼层

Re:[求助]对象变量或with块变量未设置

感谢楼上各位的帮助
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 04:55

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表