写作绅士,读作丧尸 X岛揭示板
顺猴者昌 逆猴者亡 首页版规 |用户系统 |移动客户端下载 | 丧尸路标 | | 常用图串及路标 | 请关注 公众号:【矛盾苇草】| 人,是会思考的芦苇
常用串:·豆知识·跑团板聊天室·公告汇总串·X岛路标

No.66601160 - 无标题 - 技术宅


回应模式
No.66601160
名 称
E-mail
标题
颜文字
正文
附加图片
•程序语言、压制投稿、视频制作以及各计算机领域的技术问题
•我觉得还是CSDN靠谱一点
•本版发文间隔为15秒。

收起 查看大图 向左旋转 向右旋转
无标题 无名氏 2025-07-17(四)22:28:03 ID:Vf1rnyi [举报] [订阅] [只看PO] No.66601160 [回应] 管理
遇见一段诡异的代码。
遇见它的契机是发现第七行代码可以运行,但第六行不行,但这两行代码实质上应该完全一样的,于是小肥开始调试。
Tips 无名氏 2099-01-01 00:00:01 ID:Tips超级公民 [举报] No.9999999 管理
( `д´)就不能学学动画版的萌豚,多看看动画片
收起 查看大图 向左旋转 向右旋转
无标题 无名氏 2025-07-17(四)22:32:57 ID:Vf1rnyi (PO主) [举报] No.66601211 管理
可以发现,两个GetDC地址是相同的,但返回值是不同的。问了ai,也说是两个值应该是相同的,这个问题很不解
但是一不小心多按了一下F10的小肥发现,程序竟然没有报错退出,这个程序竟然运行起来了
收起 查看大图 向左旋转 向右旋转
无标题 无名氏 2025-07-17(四)22:35:42 ID:Vf1rnyi (PO主) [举报] No.66601233 管理
小肥以为会不会是运行了一次GetDC的原因,所以注释了这行再次运行,结果程序还是跑起来了
可是现在的程序和开始的相比只是多了两行printf的调试输出啊Σ( ゚д゚)
收起 查看大图 向左旋转 向右旋转
无标题 无名氏 2025-07-17(四)22:38:57 ID:Vf1rnyi (PO主) [举报] No.66601271 管理
惊讶的小肥连忙又注释了一行,结果发现程序还是能跑起来。可是最让我不解的事情出现了,我注释了剩下的一行调试输出,满怀期待地按下F5,但是,程序又寄掉了( ゚д゚)
无标题 无名氏 2025-07-17(四)22:40:11 ID:8hxlYPV [举报] No.66601285 管理
换一个编译器试试
无标题 无名氏 2025-07-17(四)22:46:29 ID:Vf1rnyi (PO主) [举报] No.66601353 管理
我郁闷地取消了这一行的注释,无奈地再次按下F5,但是诡异的事情出现了,程序还是没跑起来??明明和刚刚的代码一样了,但是现在跑不起来了?
然后小肥试了几次,发现两条调试语句都在的时候程序能跑,此时注释掉语句1程序也能跑,但这时再注释语句2就不能跑了。此时取消语句2的注释,程序也不能跑(好诡异??),但再取消语句1的注释,代码又能跑起来。
此外在注释语句2的情况下,保留语句1,也能正常运行,再注释语句1不能运行,此时取消注释语句1能运行
无标题 无名氏 2025-07-17(四)22:48:08 ID:Vf1rnyi (PO主) [举报] No.66601367 管理
>>No.66601285
试了VS和mingw都不能正常跑
无标题 无名氏 2025-07-17(四)22:50:03 ID:eGGalz7 [举报] No.66601380 管理
“只要代码能跑就不要动”
无标题 无名氏 2025-07-17(四)22:51:57 ID:Vf1rnyi (PO主) [举报] No.66601396 管理
>>No.66601380
一般的我也就忍了,但是它是有输出的printf(;´Д`)
无标题 无名氏 2025-07-18(五)01:00:54 ID:QbwxZDS [举报] No.66602444 管理
在哪一行寄的?报错是什么
无标题 无名氏 2025-07-18(五)03:40:29 ID:YM2OmcU [举报] No.66602946 管理
实在不行贴个纯洁印记拜拜机魂吧( ゚∀。)
无标题 无名氏 2025-07-18(五)09:25:47 ID:Vf1rnyi (PO主) [举报] No.66603670 管理
啊哈哈找到解决方法了,重启以后用release跑发现apis.GetDC的地址是0,显式添加了LoadLibraryA(user32.all)和gdi32.dll发现就能跑起来了。
虽然还是搞不懂昨天遇见的神秘现象到底怎么回事
无标题 无名氏 2025-07-18(五)12:56:09 ID:UyCCkk1 [举报] No.66605398 管理
( ゚∀。)我没有windows编程经验,瞎猜

原来windows上动态链接库是分成显式添加和隐式添加的吗?那会不会是程序里有调用printf就隐式添加了你用的库,没用printf就没加上,要不在后面加个printf试试现象
无标题 无名氏 2025-07-18(五)18:42:36 ID:QbwxZDS [举报] No.66608236 管理
>>No.66605398
可以通过include使得编译期链接动态库对应的静态库,运行时自动加载对应的动态库;也可以通过loadlibrary和getprocaddress运行期查找dll里的函数

UP主: