找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 4351|回复: 10

【VB6】检测是否运行于IDE的调试模式下

[复制链接]

1109

主题

1642

回帖

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
243
威望
742 点
宅币
24122 个
贡献
46222 次
宅之契约
0 份
在线时间
2287 小时
注册时间
2014-1-26
发表于 2021-2-22 17:52:49 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
当你打算使用一些黑科技优化,而它会让IDE崩溃导致调试困难的时候,可以先检测代码是否运行于IDE的调试模式下,然后在调试模式下先不使用黑科技来实现功能,在编译后才使用黑科技。

  1. '检测是否在IDE环境下运行
  2. Function IsRunningInVB6IDE() As Boolean
  3. Static Counter As Variant
  4. If IsEmpty(Counter) Then
  5.     Counter = 1
  6.     Debug.Assert IsRunningInVB6IDE() Or True
  7.     Counter = Counter - 1
  8. ElseIf Counter = 1 Then
  9.     Counter = 0
  10. End If
  11. IsRunningInVB6IDE = Counter
  12. End Function
复制代码
回复

使用道具 举报

9

主题

169

回帖

1万

积分

用户组: 真·技术宅

UID
4293
精华
5
威望
440 点
宅币
8574 个
贡献
850 次
宅之契约
0 份
在线时间
328 小时
注册时间
2018-9-19
发表于 2021-2-23 10:05:02 | 显示全部楼层
用这个还不如直接 App.LogMode 吧,VB6都自带了。有没有能条件编译判断的方式呢?
回复 赞! 靠!

使用道具 举报

55

主题

266

回帖

9310

积分

用户组: 管理员

UID
77
精华
16
威望
237 点
宅币
8184 个
贡献
251 次
宅之契约
0 份
在线时间
250 小时
注册时间
2014-2-22
发表于 2021-2-23 16:24:25 | 显示全部楼层
为啥我觉得黑科技只有在VB6IDE运行的时候才好使?

顺带说句,那个App.LogMode好像是有啥奇怪的用途。
http://www.johnsmiley.com/cis18/smiley022.pdf
回复 赞! 靠!

使用道具 举报

1109

主题

1642

回帖

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
243
威望
742 点
宅币
24122 个
贡献
46222 次
宅之契约
0 份
在线时间
2287 小时
注册时间
2014-1-26
 楼主| 发表于 2021-2-23 16:54:07 | 显示全部楼层
美俪女神 发表于 2021-2-23 16:24
为啥我觉得黑科技只有在VB6IDE运行的时候才好使?

顺带说句,那个App.LogMode好像是有啥奇怪的用途。

我用它写自己的UserControl的时候,拿来判断是否处在编辑模式
回复 赞! 靠!

使用道具 举报

9

主题

169

回帖

1万

积分

用户组: 真·技术宅

UID
4293
精华
5
威望
440 点
宅币
8574 个
贡献
850 次
宅之契约
0 份
在线时间
328 小时
注册时间
2018-9-19
发表于 2021-2-24 10:08:57 | 显示全部楼层
0xAA55 发表于 2021-2-23 16:54
我用它写自己的UserControl的时候,拿来判断是否处在编辑模式

不有提供专门的 Ambient.UserMode 属性可以判断吗?
回复 赞! 靠!

使用道具 举报

1109

主题

1642

回帖

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
243
威望
742 点
宅币
24122 个
贡献
46222 次
宅之契约
0 份
在线时间
2287 小时
注册时间
2014-1-26
 楼主| 发表于 2021-2-24 23:42:29 | 显示全部楼层
系统消息 发表于 2021-2-24 10:08
不有提供专门的 Ambient.UserMode 属性可以判断吗?

虽说用过然后发现不好使
回复 赞! 靠!

使用道具 举报

1

主题

157

回帖

579

积分

用户组: 大·技术宅

UID
7535
精华
0
威望
0 点
宅币
421 个
贡献
0 次
宅之契约
0 份
在线时间
65 小时
注册时间
2021-10-16
发表于 2022-5-17 11:18:05 | 显示全部楼层

珍惜生命,果断回帖。
回复 赞! 靠!

使用道具 举报

0

主题

41

回帖

89

积分

用户组: 小·技术宅

UID
1457
精华
0
威望
2 点
宅币
44 个
贡献
0 次
宅之契约
0 份
在线时间
8 小时
注册时间
2016-1-29
发表于 2022-9-6 11:43:55 | 显示全部楼层
推荐这个方案,效率最高,也最稳
不论是App.LogMode还是API都有一些特殊场景有意外发生,有看过老外的讨论帖
Public Function MakeTrue( _
    ByRef bValue As Boolean) As Boolean
    MakeTrue = True: bValue = True
End Function
使用
Dim bInIDE As Boolean
Debug.Assert MakeTrue(bInIDE)
回复 赞! 靠!

使用道具 举报

1109

主题

1642

回帖

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
243
威望
742 点
宅币
24122 个
贡献
46222 次
宅之契约
0 份
在线时间
2287 小时
注册时间
2014-1-26
 楼主| 发表于 2022-9-6 12:23:40 | 显示全部楼层
搬砖工 发表于 2022-9-6 11:43
推荐这个方案,效率最高,也最稳
不论是App.LogMode还是API都有一些特殊场景有意外发生,有看过老外的讨论 ...

我印象里记得确实有这个 MakeTrue 的检测方式,很简洁。

只是多年不用 VB6,再次遇到这个问题的时候,我就用了一个别的办法。
回复 赞! 靠!

使用道具 举报

0

主题

7

回帖

28

积分

用户组: 初·技术宅

UID
3038
精华
0
威望
0 点
宅币
21 个
贡献
0 次
宅之契约
0 份
在线时间
4 小时
注册时间
2017-11-3
发表于 2022-9-14 20:57:00 | 显示全部楼层
回帖保命
回复

使用道具 举报

0

主题

21

回帖

63

积分

用户组: 小·技术宅

UID
7859
精华
0
威望
2 点
宅币
38 个
贡献
0 次
宅之契约
0 份
在线时间
8 小时
注册时间
2022-5-24
发表于 2022-11-18 16:14:38 | 显示全部楼层
火钳留铭
回复

使用道具 举报

本版积分规则

QQ|申请友链||Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-2-27 02:59 , Processed in 0.045732 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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