游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1900|回复: 2

请教几个VB的基础性问题

[复制链接]

53

主题

241

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
发表于 2005-5-22 21:07:00 | 显示全部楼层 |阅读模式
我在ActiveDLL工程的类模块中写了这么一段代码,请看注释上的问题:

Public Function createFont(fontName As String, fontSize As Integer, fontEffect As w_FontEffect) As D3DXFont
    Dim fontDesc As IFont
    Dim w_font As New StdFont '这里创建的对象是否会在函数结束时注销掉?
    w_font.Name = fontName
    w_font.Size = fontSize
    w_font.Bold = fontEffect.Bold
    w_font.Italic = fontEffect.Italic
    w_font.Strikethrough = fontEffect.Strikethrough
    w_font.Underline = fontEffect.Underline
   
    Set fontDesc = w_font
   
    Set createFont = w_D3DX.createFont(d3d_Device, fontDesc.hFont) '这里用了Set,以后是否要Set一次Nothing?
   
    Set fontDesc = Nothing '这句有没有必要?
End Function

问题都十分的弱 - -iii 我虽然知道局部域里的变量会在退出域的时候从内存注销掉,但是不确定在使用New和Set之后是不是也一样会注销

50

主题

382

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
发表于 2005-5-24 00:54:00 | 显示全部楼层

Re:请教几个VB的基础性问题

我的建意是结束时要注销对象
某些情况下结束时不可以注销对象的
比如:

public sub abc(a As Device)
     dim d as new device
     device=d

     set d=nothing'这样做是错误的,因为device和d 指向的是同一地址
end sub

Set createFont = w_D3DX.createFont(d3d_Device, fontDesc.hFont) '以后不要Set一次Nothing,不然你的这个函数就没有意义了

53

主题

241

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
 楼主| 发表于 2005-5-26 00:39:00 | 显示全部楼层

Re:请教几个VB的基础性问题

嗯嗯~~非常感谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-25 18:19

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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